Boost logo

Boost :

From: Rene Rivera (grafikrobot_at_[hidden])
Date: 2019-07-24 17:30:19


On Wed, Jul 24, 2019 at 11:21 AM Niall Douglas via Boost <
boost_at_[hidden]> 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_at_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_at_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

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