It seems that he proposal is accepted except that the dispatching should be done in libc++ instead of the driver.
The timeline I’m proposing is:
LLVM 18 release (Feb 2024)
- Start communicating the intent to stop doing non-critical maintenance for C++03
- Add a mention to the LLVM 18 release notes just to get some visibility
LLVM 19 release (Jul 2024)
- Officially communicate that LLVM 21 is the last release where C++03 gets non-critical bug fixes
After LLVM 19 has branched
- Copy the C++03 headers
- Start making simplifications to the C++03 headers
- At this point we backport all fixes to the C++03 headers as well (so we do some work in duplicate)
- Keep the normal headers working in C++03
LLVM 20 release (Feb 2025)
- Communicate that LLVM 21 is the last release where C++03 gets non-critical bug fixes
After LLVM 20 has branched
- Keep making simplifications to the C++03 headers
- Keep backporting all fixes to the C++03 headers
- Keep the normal headers working in C++03
LLVM 21 release (Jul 2025)
- Mention that this was the last release where C++03 was getting non-critical bug fixes
After LLVM 21 has branched
- Keep backporting all fixes to C++03 for a few weeks (until we are confident no cherry-picks are required)
- Then stop doing non-critical bug fixes to C++03
- Evaluate whether to keep the normal headers working in C++03 based on confidence
- After this point, C++03 should be extremely stable