Boost logo

Boost :

Subject: Re: [boost] [release] 1.64.0 Delayed because of Microsoft (version numbers)
From: Mateusz Loskot (mateusz_at_[hidden])
Date: 2017-03-20 13:38:54


 On 20 March 2017 at 13:43, Refael Ackermann via Boost
<boost_at_[hidden]> wrote:
> On Sun, 19 Mar 2017 08:10:37 -0500 Tom Kent via Boost <boost_at_[hidden]> wrote:
>> On Fri, Mar 17, 2017 at 10:12 AM, Rene Rivera via Boost <
>> boost_at_[hidden]> wrote:
>> > (B) The community decides what version number we should be using and the
>> > appropriate PRs are filed and applied and tested for all the repos
>> > involved. Which means:
>> >
>> > 1. The community has until 12:00 CDT US March 18 to decide on what the vc
>> > version number and tag should be.
>> >
>> > 2. The community must post PRs for the places where we reference VS2017
>> > version numbers to the new number. Those are at least:
>> >
>> > <https://github.com/boostorg/config>
>> > <https://github.com/boostorg/build>
>> > <https://github.com/boostorg/boost>
>> > <https://github.com/boostorg/website>
>> >
>> > People have until 17:00 CDT Monday March 20 to submit those PRs.
>> >
>> > 3. The community can test the resulting master snapshot when available at
>> > the latest 24:00 Monday March 20.
>> >
>> > 4. If all goes well we can have a beta release on Wednesday March 22 (ie
>> > one week late).
>>
>>
>> I'm not sure how we'll coalesce around a consensus, but I figure we should
>> lay out the options in one place. Even if this doesn't make it into the
>> beta, we should be clear on this going forward.
>>
>> Option 1 - 14.10 Use microsoft toolset version based on cl.exe version -5.
>> This is the official version of the c++ toolset that microsoft has been
>> pushing (somewhere). The new $(VCToolsVersion) macro is "14.10.25017", this
>> macro is not available in previous versions of visual studio.
>>
>> build bootstrap would use bootstrap.bat vc1410
>> build of source would use b2 toolset=msvc-14.10
>> build would generat libraries of the format
>> libboost_NAME_vc1410-OPTIONS-1_64.lib
>> config would auto-link libraries of the same format
>>
>> Option 2 - 14.1 Use the abbreviated toolset version that microsoft uses for
>> their toolset version. The $(PlatformToolsetVersion) macro is "141". In
>> VS2015 this was "140".
>>
>> build bootstrap would use bootstrap.bat vc141
>> build of source would use b2 toolset=msvc-14.1
>> build would generat libraries of the format
>> libboost_NAME_vc141-OPTIONS-1_64.lib
>> config would auto-link libraries of the same format
>>
>> Option 3 - 15.0 Use the visual studio version. The $(VisualStudioVersion)
>> macro is "15.0". In VS2015 this was "14.0".
>>
>> build bootstrap would use bootstrap.bat vc15
>> build of source would use b2 toolset=msvc-15.0
>> build would generat libraries of the format
>> libboost_NAME_vc150-OPTIONS-1_64.lib
>> config would auto-link libraries of the same format
>>
>>
>>
>> A alternative that could be made to any of the options 1-3 option would be
>> to bring the b2 toolset in line with whatever we chose for the name,
>> replacing the "msvc-" with "vc". For example option 1-a would be:
>>
>> build bootstrap would use bootstrap.bat vc1410
>> build of source would use b2 toolset=vc1410
>> build would generat libraries of the format
>> libboost_NAME_vc1410-OPTIONS-1_64.lib
>> config would auto-link libraries of the same format
>>
>>
>>
>> I *think* that is all the reasonable options. Let the consensus form!
>
>
> I'm for Option 1.
> Might be more "breaking" but I think it'll be more future proof (i.e. vc1412 > vc1410 && 14.20 > 14.12 14.10).

I don't think this is argument holds strong in practice.
AFAIK, PlatformToolseVersion and its derivatives used in Boost
are never compared as range, like _MSC_VER often is,
but as exact values.

Boost tests for:
v140
v141
and, if at any time Microsoft replaces it with, STL (tm):
meow
let it be so.

Best regards,

-- 
Mateusz Loskot, http://mateusz.loskot.net

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