Boost logo

Boost :

From: Tom Kent (lists_at_[hidden])
Date: 2019-12-08 12:20:37


On Sat, Dec 7, 2019 at 12:51 AM Daniela Engert <dani_at_[hidden]> wrote:

> Hi Tom!
>
> Am 06.12.2019 um 22:35 schrieb Tom Kent via Boost:
>
> On Thu, Dec 5, 2019 at 10:15 AM Daniela Engert via Boost <boost_at_[hidden]> wrote:
>
>
> Am 05.12.2019 um 16:16 schrieb Tobias Loew via Boost:
>
>
> http://boost.2283326.n4.nabble.com/release-proto-MSVC-19-24-28314-VS-2019-16-4-0-won-t-compile-proto-s-generate-hpp-td4710720.html
>
> cause it's a showstopper for the latest VS 2019 (16.4.0).
>
> It's not an error introduced in 1.72 but already there for a long time,
>
> and
>
> now the latest MSVC version produces an error on that MSVC-workaround.
>
> I've noticed this as well, today. As a quick hack I simply disabled the
> workaround at line 233 for BOOST_MSVC >= 1924. Obviously, the problem
> mentioned by the dead link is no longer a thing. With this modification,
> Boost.Log is successfully compiling again.
>
>
>
> Can you verify that this is only VS 16.4.0 and doesn't apply to 16.3.x? If
> so, that is scary.
>
> It definitely was compiling just fine until 16.3.7, because this was the
> version that I have been using as my main compiler at work before switching
> to 16.4.0 two days ago. Our ubiquitously used logging library depends on
> Boost.Log which suddenly became affected from the workaround in Boost.Proto
> no longer compiling.
>
> Unfortunately, I've never compiled our production code with any of the
> 16.4-pre versions. I only did with my C++20 Modules experiments during my
> talk preparations, but I noticed that despite the seemingly minor bump 16.3
> -> 16.4, the compiler learned a couple of new features (e.g. concepts, the
> new C++20 syntax). So, until there is a thorough exploration with all Boost
> libs compiled with msvc 16.4.0 in all 4 modes (32/64, debug/release), there
> might lurk other surprises as well.
>
> Ciao
> Dani
>
I'm not sure I can reproduce this. I'm trying to run with four different
configs:

based on visual studio build tools 16.3.x
toolset=msvc-14.2
toolset=msvc-14.2 cxxflags=/std:c++latest
based on visual studio build tools 16.4.0
toolset=msvc-14.2
toolset=msvc-14.2 cxxflags=/std:c++latest

running in proto
..\..\b2 [config from above] test
works fine for all versions....so this bug isn't covered by a test I'm
guessing.

Running in log
..\..\b2 [config from above] test

causes the log build to fail for both 16.3 and 16.4 for the configurations
that use cxxflags=/std:c++latest. This can be seen in the regression tests
for boost.log:
https://www.boost.org/development/tests/develop/developer/log.html
https://www.boost.org/development/tests/master/developer/log.html

teeks99-07-v16[m|d]-64onAMD64 is the normal msvc-14.2
teeks99-07-v16[m|d]l-64onAMD64 is the msvc-14.2 with cxxflags=/std:c++latest

The error looks something like this (and goes on for a bit)

D:\boost\libs\log>..\..\b2 toolset=msvc-14.2 cxxflags=/std:c++latest test
Performing configuration checks

    - default address-model : 32-bit (cached)
    - default architecture : x86 (cached)
    - symlinks supported : yes (cached)
    - native-atomic-int32-supported : yes (cached)
    - message-compiler : yes (cached)
    - native-syslog-supported : no (cached)
    - pthread-supports-robust-mutexes : no (cached)
    - compiler-supports-ssse3 : yes (cached)
    - compiler-supports-avx2 : yes (cached)
    - has_icu builds : no (cached)
    - BOOST_COMP_GNUC >= 4.3.0 : no (cached)
    - iconv (libc) : no (cached)
    - iconv (separate) : no (cached)
    - icu : no (cached)
    - icu (lib64) : no (cached)
    - message-compiler : yes (cached)
...patience...
...patience...
...patience...
...patience...
...patience...
...found 23437 targets...
...updating 334 targets...
compile-c-c++
..\..\bin.v2\libs\log\build\msvc-14.2\debug\threadapi-win32\threading-multi\syslog_backend.obj
syslog_backend.cpp
D:\boost\boost/asio/async_result.hpp(44): error C2062: type 'bool'
unexpected
D:\boost\boost/asio/async_result.hpp(45): error C2143: syntax error:
missing ';' before '{'
D:\boost\boost/asio/async_result.hpp(45): error C2447: '{': missing
function header (old-style formal list?)
D:\boost\boost/asio/async_result.hpp(56): error C7568: argument list
missing after assumed function template 'callable_with'
D:\boost\boost/asio/async_result.hpp(58): note: see reference to class
template instantiation 'boost::asio::detail::is_co

I tried a `D:\boost\libs\proto> git
checkout ef2e94fe299449c4b23f305a854de0b5b48248be` and had the exact same
results as above.

Can you provide some steps to minimally reproduce this issue?

Thanks,
Tom


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk