aaron.ballman added a comment.

In D130689#3710340 <https://reviews.llvm.org/D130689#3710340>, @MaskRay wrote:

> In D130689#3710291 <https://reviews.llvm.org/D130689#3710291>, @aaron.ballman 
> wrote:
>
>> In D130689#3710281 <https://reviews.llvm.org/D130689#3710281>, @royjacobson 
>> wrote:
>>
>>> In D130689#3709834 <https://reviews.llvm.org/D130689#3709834>, @thieta 
>>> wrote:
>>>
>>>> In D130689#3709742 <https://reviews.llvm.org/D130689#3709742>, 
>>>> @aaron.ballman wrote:
>>>>
>>>>> One thing I think would be a definite improvement is to have done an RFC 
>>>>> on Discourse for these changes so that downstreams have a chance to weigh 
>>>>> in on the impact. The patch was put up on Jul 28 and landed about a week 
>>>>> later without any notification to the rest of the community who might not 
>>>>> be watching cfe-commits -- that's a very fast turnaround and very little 
>>>>> notification for such a significant change.
>>>>
>>>> Yeah this is on me. Honestly I didn't expect it to be that much of a 
>>>> problem but rather the toolchain requirement we posted as part of it would 
>>>> be the big hurdle where bot owners would have to upgrade to get the right 
>>>> versions. But lesson learned  and we should add some more delays in the 
>>>> policy here: https://llvm.org/docs/DeveloperPolicy.html#id23 and cover the 
>>>> C++ standards upgrade.
>>>
>>> Two points I want to add that I think would've been useful as well -
>>>
>>> 1. In addition to the toolchain soft errors, add a version check + #warning 
>>> to some llvm header. This would be useful as it is more visible than the 
>>> CMake warning and it could show up for cases where LLVM is used as a 
>>> library+headers and not built from sources.
>>> 2. Delay actual usage of new language features until after the next 
>>> release. Currently I see people pushing lots of cleanup commits that could 
>>> hurt bug backports. It also has the benefit of making the transition more 
>>> gradual.
>>
>> Strong +1 to point #2 especially. This is something we could have plausibly 
>> reverted to work through the kinks rather than doing that work live and 
>> while under duress, but it became implausible pretty quickly because 
>> everyone started landing their C++17 NFC changes. Those kinds of changes 
>> almost always can wait until after we've validated that the switch has gone 
>> smoothly.
>
> Point #2 can be advised but may not have too much a difference. I work on a 
> large monolithic code base and have good experience that people quickly use 
> new features (sometimes inadvertently) with a new release of clang/mlir/etc 
> or use/stick with an unsupported use for an extended period of time. It's 
> very difficult to prevent either activity.

Agreed that people will start using those features organically, but it's way 
easier to revert 1-5 patches than 20-30. I'm not worried about when we need to 
revert a few weeks after landing the switch, I'm worried about situations like 
this where we knew within a few days that we had serious problems. This landed 
on Saturday and we had people pushing c++17 specific NFC changes that same day.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D130689/new/

https://reviews.llvm.org/D130689

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to