[llvm-dev] Upgrading to MSVC 2015

Aaron Ballman via llvm-dev llvm-dev at lists.llvm.org
Fri Jul 29 14:18:47 PDT 2016


There are not that many people making commits to working around MSVC
2013 as I think are claimed (there are certainly a lot of commits for
working around MSVC in general, however). A quick search through the
code base shows there are 8 instances where we've worked around MSVC
2013 issues (there may be more that someone worked around in an ad hoc
manner and did not mark). We definitely had *a lot* more when we
dropped MSVC 2012 early. The primary issues people are working around
are constexpr support, which is important but certainly not critical,
and still some occasional issues with move constructors not being
synthesized as expected, which is also pretty simple to work around
(and is usually an optimization loss more than a functionality loss).

As MSVC 15 starts getting closer to the RTM stages, I think we should
definitely consider the switch more strongly, but with it still in
Preview mode, I think it's premature to drop support for MSVC 2013 at
this time.

~Aaron

On Fri, Jul 29, 2016 at 5:02 PM, Zachary Turner <zturner at google.com> wrote:
> FWIW, no objections from me, after all I proposed this 3 months ago :)
>
> Probably Aaron Ballman should comment though since the primary objection
> last time was his.
>
> On Fri, Jul 29, 2016 at 2:00 PM Sean Silva <chisophugis at gmail.com> wrote:
>>
>> On Fri, Jul 29, 2016 at 1:23 PM, Robinson, Paul via llvm-dev
>> <llvm-dev at lists.llvm.org> wrote:
>>>
>>> There are certainly enough people making commits that work with VS2015
>>> but not VS2013 that the "would it be useful" question is pretty well
>>> answered.  I've already brought up the idea on my team, as it's obviously
>>> coming and we need time to coordinate with internal consumers of the
>>> toolchain.
>>
>>
>> Also, we have an increasing number of parts of the codebase that are
>> working around VS2013's inability to generate move constructors.
>> This is all over the new PM code and the passes ported to the new PM.
>> It has caused me personally hours of lost time and generally penalizes
>> good coding practices (exporting lifetime management to RAII is only so
>> convenient if you can't have a move-only type like a unique_ptr without
>> manually writing out move constructor/assign; and the diagnostics when this
>> VS2013 deficiency raises its head are.... confusing).
>>
>> -- Sean Silva
>>
>>
>>>
>>> --paulr
>>>
>>>
>>>
>>> From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of
>>> Zachary Turner via llvm-dev
>>> Sent: Friday, July 29, 2016 11:35 AM
>>> To: Piotr Padlewski; Aaron Ballman
>>> Cc: llvm-dev
>>> Subject: Re: [llvm-dev] Upgrading to MSVC 2015
>>>
>>>
>>>
>>> Probably not.  It's very confusing because they are transitioning to a
>>> new versioning scheme.  The current version if Visual Studio 2015.  The next
>>> version is Visual Studio 15.  The link you posted was for the RTM of 2015,
>>> just over a year ago.  But 15 is still in Preview.  When 15 goes to RTM,
>>> then we can revisit the question of making 2015 the minimum required
>>> version.
>>>
>>>
>>>
>>> On Fri, Jul 29, 2016 at 11:29 AM Piotr Padlewski
>>> <piotr.padlewski at gmail.com> wrote:
>>>
>>> https://www.visualstudio.com/en-us/news/vs2015-vs.aspx
>>>
>>>
>>>
>>> Is it time?
>>>
>>>
>>>
>>> 2016-03-31 12:03 GMT-07:00 Aaron Ballman via llvm-dev
>>> <llvm-dev at lists.llvm.org>:
>>>
>>> On Thu, Mar 31, 2016 at 2:57 PM, Zachary Turner <zturner at google.com>
>>> wrote:
>>> >
>>> >
>>> > On Tue, Mar 29, 2016 at 10:42 AM Aaron Ballman <aaron at aaronballman.com>
>>> > wrote:
>>> >>
>>> >>
>>> >> Not everyone can upgrade to the latest version of the toolchain, even
>>> >> if it has been released for a while. We did drop MSVC 2012 support
>>> >> early, but MSVC 2015 was in RC or RTM stages by that point, and we had
>>> >> some pretty big incentive to upgrade early (without function templates
>>> >> supporting default arguments, the AST matcher DSL made for really slow
>>> >> compiles of Clang itself, and resulted in a larger executable size
>>> >> among other things, IIRC).
>>> >
>>> >
>>> > I know you mentioned that one of the reasons we upgraded to 2013 was
>>> > because
>>> > 2015 was in RC or RTM.  Ironically, the day after I posted this MS
>>> > announced
>>> > Visual Studio 15 preview  (which is confusingly the version *after*
>>> > Visual
>>> > Studio 2015).
>>>
>>> Hah, that is confusing!
>>>
>>> > In any case, it's not an RC, and it's certainly not an RTM,
>>> > but it is on the horizon.  So hopefully we can revisit this question
>>> > when 15
>>> > is in RC / RTM
>>>
>>> I think that's a great time to revisit the question (transitioning
>>> sometimes takes a bit of time since we want to ask people with out of
>>> tree needs if they're ready before dropping support for major
>>> releases).
>>>
>>>
>>> ~Aaron
>>>
>>>
>>> _______________________________________________
>>> LLVM Developers mailing list
>>> llvm-dev at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>>
>>>
>>> _______________________________________________
>>> LLVM Developers mailing list
>>> llvm-dev at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>>
>


More information about the llvm-dev mailing list