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

Chris Bieneman beanz at apple.com
Mon Feb 16 11:42:07 PST 2015


> On Feb 16, 2015, at 10:47 AM, Aaron Ballman <aaron at aaronballman.com> wrote:
> 
> 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.

When I landed the change originally I saw no failures from any public bots. I assume Takumi reverted it because there was a failure on a non-public bot. Since the change re-landed on Sunday, I don’t think it is really safe to assume all non-public bots had been migrated.

I’m not trying to stand in the way of progress here, but I do feel like we’ve kinda thrown the plan to the wind here.

> 
>> 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.

Hopefull there are no issues, but since this was re-landed on a Sunday when a lot of people aren’t around and watching I’m nervous that we may have broken things when people weren’t looking.

> 
>> 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).

Right, but step 4 is to revert that change. We’ve now basically made it prohibitively difficult to revert.

Look, I want to use variadic templates as much as the next guy, I’m just also wanting to be considerate of our unfortunate colleagues using MSVC.

-Chris

> 
> ~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 lldb-dev mailing list