$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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