On Wed, Jul 24, 2019 at 11:21 AM Niall Douglas via Boost < boost@lists.boost.org> wrote:
So, the fact that !BOOST_COMP_GNUC and !BOOST_COMP_CLANG are false on MSVC is a problem, the tests won't run on MSVC.
Yet Outcome works fine for the developer build, as evidenced by the regression matrix. So this is a problem affecting this release build ONLY.
Thoughts?
I've not used predef-require, but you can't compare versions in dotted notation in C++ preprocessor. Boost.Predef defines version numbers with BOOST_VERSION_NUMBER, so you would compare like this:
BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(6, 0, 0)
Also, note that 6.0 is a pre-release version of gcc 6.x. The first release version is 6.1.
I vaguely remember that the documented approach, which is what you suggest, doesn't work from Predef. What I have in there does work. GCCs before 6 are excluded, that works fine.
That said, given that the Boost.Build output above is from MSVC, I'm not sure why both !BOOST_COMP_GNUC and !BOOST_COMP_CLANG are "no".
It also would seem that Predef is broken on GCC 7.3 on Linux as well:
ned@KATE:/mnt/c/Users/ned/Downloads/boost_1_71_0_b1_rc1/boost_1_71_0$ ./b2 libs/outcome/test Performing configuration checks
- !BOOST_COMP_GNUC : no - BOOST_COMP_GNUC >= 6.0 : no - !BOOST_COMP_CLANG : no - BOOST_COMP_CLANG >= 4.0 : no - default address-model : 64-bit - default architecture : x86 - Boost.Config Feature Check: cxx14_variable_templates : yes - Boost.Config Feature Check: cxx14_constexpr : yes - !BOOST_COMP_GNUC : no - BOOST_COMP_GNUC >= 6.0 : no - !BOOST_COMP_CLANG : no - BOOST_COMP_CLANG >= 4.0 : no - Boost.Config Feature Check: cxx14_variable_templates : yes - Boost.Config Feature Check: cxx14_constexpr : yes ...found 1 target...
Just to make sure that the BOOST_VERSION_NUMBER thing hadn't changed:
ned@KATE:/mnt/c/Users/ned/Downloads/boost_1_71_0_b1_rc1/boost_1_71_0$ ./b2 libs/outcome/test --reconfigure Performing configuration checks
- !BOOST_COMP_GNUC : no - BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(6, 0, 0) : no - !BOOST_COMP_CLANG : no - BOOST_COMP_CLANG >= BOOST_VERSION_NUMBER(4, 0, 0) : no - default address-model : 64-bit - default architecture : x86 - Boost.Config Feature Check: cxx14_variable_templates : yes - Boost.Config Feature Check: cxx14_constexpr : yes - !BOOST_COMP_GNUC : no - BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(6, 0, 0) : no - !BOOST_COMP_CLANG : no - BOOST_COMP_CLANG >= BOOST_VERSION_NUMBER(4, 0, 0) : no - Boost.Config Feature Check: cxx14_variable_templates : yes - Boost.Config Feature Check: cxx14_constexpr : yes ...found 1 target...
So I'd say b2 predef has become broken recently. At least in the release distro, as the regression matrix shows Outcome building: https://www.boost.org/development/tests/develop/developer/outcome.html
It certainly looks broken.. I'll take a close look next week when I'm back in the States. -- -- Rene Rivera -- Grafik - Don't Assume Anything -- Robot Dreams - http://robot-dreams.net