MSVC toolset versions on VS2017

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

MSVC toolset versions on VS2017

Boost - Build mailing list
I just came across this article on feature updates for their compiler during the VS2017 lifetime, I thought the section talking about version numbers might be of interest to the boost build maintainers and boost config maintainers. 


The interesting part about version numbers is three-quarters of the way down the post, under the "MSVC toolset version number increases to 14.12".

The table that they have there is also illuminating:

Visual Studio Version   |   MSVC Toolset Version  |  _MSC_VER
---------------------------------------------------------------
VS2015 and updates 1, 2, & 3 | v140 in VS; version 14.00 | 1900
VS2017, Version 15.1 & 15.2  | v141 in VS; version 14.10 | 1910
VS2017, Version 15.3 & 15.4  | v141 in VS; version 14.11 | 1911
VS2017, Version 15.5         | v141 in VS; version 14.12 | 1912
---------------------------------------------------------------

Just wanted to give people a heads-up that this is something that may be encountered in the wild soon.

Tom

_______________________________________________
Unsubscribe & other changes: https://lists.boost.org/mailman/listinfo.cgi/boost-build
Reply | Threaded
Open this post in threaded view
|

Re: MSVC toolset versions on VS2017

Boost - Build mailing list


On Sun, Nov 19, 2017 at 9:54 PM, Tom Kent via Boost-build <[hidden email]> wrote:
I just came across this article on feature updates for their compiler during the VS2017 lifetime, I thought the section talking about version numbers might be of interest to the boost build maintainers and boost config maintainers. 


+1

Other portions of that blog post will be of interest to any portable code developers holding off on use of certain C++17 features until all the major compilers support them. For example "We’ve also made significant progress on fixing older conformance issues including expression SFINAE fixes, constexpr completeness, and the majority of two-phase name lookup cases."

Thanks,

--Beman

_______________________________________________
Unsubscribe & other changes: https://lists.boost.org/mailman/listinfo.cgi/boost-build
Reply | Threaded
Open this post in threaded view
|

Re: MSVC toolset versions on VS2017

Boost - Build mailing list
In reply to this post by Boost - Build mailing list
On 20 November 2017 at 02:54, Tom Kent via Boost-build
<[hidden email]> wrote:>

>
> The interesting part about version numbers is three-quarters of the way down
> the post, under the "MSVC toolset version number increases to 14.12".
>
> The table that they have there is also illuminating:
>
> Visual Studio Version   |   MSVC Toolset Version  |  _MSC_VER
> ---------------------------------------------------------------
> VS2015 and updates 1, 2, & 3 | v140 in VS; version 14.00 | 1900
> VS2017, Version 15.1 & 15.2  | v141 in VS; version 14.10 | 1910
> VS2017, Version 15.3 & 15.4  | v141 in VS; version 14.11 | 1911
> VS2017, Version 15.5         | v141 in VS; version 14.12 | 1912
> ---------------------------------------------------------------

IIUC as 14.12 is still v141, which we call 14.1 in build, boost build
will treat 14.10-14.12 as the same version. I think that's what most
people would expect, but it's apparently going to be possible to
install minor versions side-by-side now, is that something we should
support? It's not supposed to be something that most people use, but
testers might want to. There's a 'vcvars_ver' parameter to
vcvarsall.bat to specify the version. Details are in this blog post:

https://blogs.msdn.microsoft.com/vcblog/2017/11/15/side-by-side-minor-version-msvc-toolsets-in-visual-studio-2017/
_______________________________________________
Unsubscribe & other changes: https://lists.boost.org/mailman/listinfo.cgi/boost-build
Reply | Threaded
Open this post in threaded view
|

Re: MSVC toolset versions on VS2017

Boost - Build mailing list
>-----Original Message-----
>From: Boost-build [mailto:[hidden email]] On Behalf Of Daniel James via Boost-build
>Sent: Monday, November 20, 2017 5:09 AM
>To: Boost.Build developer's and user's list <[hidden email]>
>Cc: Daniel James <[hidden email]>
>Subject: Re: [Boost-build] MSVC toolset versions on VS2017
>
>On 20 November 2017 at 02:54, Tom Kent via Boost-build <[hidden email]> wrote:>
>>
>> The interesting part about version numbers is three-quarters of the
>> way down the post, under the "MSVC toolset version number increases to 14.12".
>>
>> The table that they have there is also illuminating:
>>
>> Visual Studio Version   |   MSVC Toolset Version  |  _MSC_VER
>> ---------------------------------------------------------------
>> VS2015 and updates 1, 2, & 3 | v140 in VS; version 14.00 | 1900
>> VS2017, Version 15.1 & 15.2  | v141 in VS; version 14.10 | 1910
>> VS2017, Version 15.3 & 15.4  | v141 in VS; version 14.11 | 1911
>> VS2017, Version 15.5         | v141 in VS; version 14.12 | 1912
>> ---------------------------------------------------------------
>
>IIUC as 14.12 is still v141, which we call 14.1 in build, boost build will treat 14.10-14.12 as the same version. I think that's what most people would expect, but it's apparently going to be possible to install minor versions side-by-side now, is that something we should support? It's not supposed to be something that most people use, but testers might want to. There's a 'vcvars_ver' parameter to vcvarsall.bat to specify the version. Details are in this blog post:

[AP] MSVC is learning to deal with its fear of version numbers (Hauptversionsnummernerhöhungsangst, for those of you who pay attention to the internets.) Major version numbers (e.g., 14) and minor versions numbers (e.g., .12) now make sense. When we have a major, binary breaking revision to the compiler we rev the major version number. When we have a significant, but non-binary breaking change, we rev the minor version number. When we just ship bug fixes (15.1, 15.2, 15.4) we don't touch the version number. The third part of the version number--the build date--is always reved. The fourth part of the version number--the build number--is just .00 unless there was a build break requiring rebuild.  

There are two old errors that will be corrected with the next major version, v20.00:

1. The entire toolset will be 20.00. No longer will the linker and VS be 5 versions lower than the compiler. We're all going to jump to 20. (For the compiler, it's a jump of one.)
2. I intend to have VS display the entire major/minor toolset version. Developers will select 20.00 or 20.01 or 20.10 instead of "v200" in VS. If I fail partially, developers will select "20.0x". If I fail completely, then you have the same madness to deal with that we have today : )

We really, really don't want people using the minor versions. It is meant as an escape hatch only for largely impactful, unanticipated bugs. We won't be able to service or support these minor versions in any way and they should be considered insecure the minute we make a security fix to a current version. That said, the cat is out of the box so we know it's alive and we're gonna have to feed it.

>https://blogs.msdn.microsoft.com/vcblog/2017/11/15/side-by-side-minor-version-msvc-toolsets-in-visual-studio-2017/
_______________________________________________
Unsubscribe & other changes: https://lists.boost.org/mailman/listinfo.cgi/boost-build
Reply | Threaded
Open this post in threaded view
|

Re: MSVC toolset versions on VS2017

Boost - Build mailing list
>-----Original Message-----
>From: Andrew Pardoe
>Sent: Monday, November 20, 2017 7:14 AM
>To: 'Boost.Build developer's and user's list' <[hidden email]>
>Cc: Daniel James <[hidden email]>
>Subject: RE: [Boost-build] MSVC toolset versions on VS2017
>
>>-----Original Message-----
>>From: Boost-build [mailto:[hidden email]] On
>>Behalf Of Daniel James via Boost-build
>>Sent: Monday, November 20, 2017 5:09 AM
>>To: Boost.Build developer's and user's list
>><[hidden email]>
>>Cc: Daniel James <[hidden email]>
>>Subject: Re: [Boost-build] MSVC toolset versions on VS2017
>>
>>On 20 November 2017 at 02:54, Tom Kent via Boost-build
>><[hidden email]> wrote:>
>>>
>>> The interesting part about version numbers is three-quarters of the
>>> way down the post, under the "MSVC toolset version number increases to 14.12".
>>>
>>> The table that they have there is also illuminating:
>>>
>>> Visual Studio Version   |   MSVC Toolset Version  |  _MSC_VER
>>> ---------------------------------------------------------------
>>> VS2015 and updates 1, 2, & 3 | v140 in VS; version 14.00 | 1900
>>> VS2017, Version 15.1 & 15.2  | v141 in VS; version 14.10 | 1910
>>> VS2017, Version 15.3 & 15.4  | v141 in VS; version 14.11 | 1911
>>> VS2017, Version 15.5         | v141 in VS; version 14.12 | 1912
>>> ---------------------------------------------------------------
>>
>>IIUC as 14.12 is still v141, which we call 14.1 in build, boost build will treat 14.10-14.12 as the same version. I think that's what most people would expect, but it's apparently going to be possible to install minor versions side-by-side now, is that something we should support? It's not supposed to be something that most people use, but testers might want to. There's a 'vcvars_ver' parameter to vcvarsall.bat to specify the version. Details are in this blog post:
>
>[AP] MSVC is learning to deal with its fear of version numbers (Hauptversionsnummernerhöhungsangst, for those of you who pay attention to the internets.) Major version numbers (e.g., 14) and minor versions numbers (e.g., .12) now make sense. When we have a major, binary breaking revision to the compiler we rev the major version number. When we have a significant, but non-binary breaking change, we rev the minor version number. When we just ship bug fixes (15.1, 15.2, 15.4) we don't touch the version number. The third part of the version number--the build date--is always reved. The fourth part of the version number--the build number--is just .00 unless there was a build break requiring rebuild.  
>
>There are two old errors that will be corrected with the next major version, v20.00:
>
>1. The entire toolset will be 20.00. No longer will the linker and VS be 5 versions lower than the compiler. We're all going to jump to 20. (For the compiler, it's a jump of one.) 2. I intend to have VS display the entire major/minor toolset version. Developers will select 20.00 or 20.01 or 20.10 instead of "v200" in VS. If I fail partially, developers will select "20.0x". If I fail completely, then you have the same madness to deal with that we have today : )
>
>We really, really don't want people using the older, side-by-side minor versions. It is meant as an escape hatch only for largely impactful, unanticipated bugs. We won't be able to service or support these minor versions in any way and they should be considered insecure the minute we make a security fix to a current version. That said, the cat is out of the box so we know it's alive and we're gonna have to feed it.

Sorry, correction to what I said: we don't want people using the older, side-by-side minor versions. That is, now that 14.12 is shipping with VS2017 15.5, we don't want people using 14.11. Yes, we allow you to install it, but we don't want to support it. It's only meant to help you until you install the current toolset.  

>>https://blogs.msdn.microsoft.com/vcblog/2017/11/15/side-by-side-minor-v
>>ersion-msvc-toolsets-in-visual-studio-2017/
>
_______________________________________________
Unsubscribe & other changes: https://lists.boost.org/mailman/listinfo.cgi/boost-build