[RFC] Freezing C++03 headers in libc++

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
1 Like