[LLVMdev] [lldb-dev] [cfe-dev] [RFC] Raising LLVM minimum required MSVC version to 2013 for trunk

Aaron Ballman aaron at aaronballman.com
Mon Feb 16 10:47:05 PST 2015


On Mon, Feb 16, 2015 at 1:37 PM, Chris Bieneman <beanz at apple.com> wrote:
> The plan as stated was:
>
> 1) Loop in cfe-dev and lldb-dev (Done!)
> 2) Wait until this email fully circulates in digests and LLVM Weekly so that everyone who has an objection can voice it
> 3) If there are no objections, Commit a change to the CMake build which errors on old MSVC versions
> 4) Revert and fix buildbots
> 5) Repeat 3 & 4 until no issues

It's my understanding that we're past step 5 currently, and waiting to
do step 6.

> 6) Once the change is live for a week with no issues, update the documentation to reflect the minimum required MSVC version as 2013
>
> This really doesn’t make sense if we are landing changes requiring MSVC 2013 between steps 3&5. Reverting as needed now that we have a stack of changes that is piling up isn’t really viable anymore.

You are correct, if we need to revert, it would be challenging. My
understanding is that we do not need to revert any further, as
Chapuni's bots were the last ones that needed specific attention. The
lld and lldb bots may require further attention, but not certain
whether they require this change to be reverted? Those owners would
have to speak up with what they'd like to see happen.

> So I assume the new plan to just make anyone using MSVC update or they can’t build anymore.

They couldn't build after step 3 anyway (almost any source changes
require CMake to rebuild the solutions, so any source fetches getting
newer code would also get the CMake files requiring a newer version of
MSVC before the solution can be generated). The repetition part of the
above steps is for build bots, not all users (though, obviously, if
there are major users who are stuck and didn't realize it until now,
we would have to figure out how to handle that).

~Aaron

>
> -Chris
>
>> On Feb 16, 2015, at 10:32 AM, Aaron Ballman <aaron at aaronballman.com> wrote:
>>
>> On Mon, Feb 16, 2015 at 1:22 PM, Chris Bieneman <beanz at apple.com> wrote:
>>> + Chandler
>>>
>>> Ok… What’s going on here?
>>>
>>> I see Takumi re-landed the patches, but there have been a lot of changes
>>> that came in yesterday that go against the plan for rolling this out.
>>>
>>> The original plan (as proposed by Chandler) was to wait a week after landing
>>> the CMake change before updating the documentation and allowing new C++11
>>> features. This gives adequate time for people who may have missed this
>>> thread to adjust.
>>
>> Once the CMake changes went live, anyone who was still on MSVC 2012
>> could no longer build, regardless. Waiting a week before landing
>> changes doesn't make that situation different for those users. I was
>> under the impression that the week-long embargo was for the docs only,
>> and it was to give us time to stabilize bots as-needed while finding
>> out what works and does not work with MSVC 2013 in practice.
>>
>>> We now have uses of new C++11 features that aren’t supported by VS2012
>>> littered around, which makes backing this change out far less trivial.
>>>
>>> What is the plan now?
>>
>> I believe the plan is to continue ripping out MSVC 2012 (and earlier)
>> compatibility to determine the base feature set that's valid to use.
>> For instance, my testing still shows that MSVC 2013 does not
>> synthesize move constructors properly, and so a lot of those hacks
>> must remain in place. However, it appears that = delete and explicit
>> operator support are sufficient to add to the set of working items.
>> From this, we can update the documentation.
>>
>> ~Aaron
>




More information about the llvm-dev mailing list