New standard procedure¶
Roughly every three years, WG21 finishes a version of the C++ standard and starts working on the next one. This page describes the procedure that libc++ developers must follow to introduce support for a new version of the standard in the library. Since introducing a new Standard does not happen often, this document may not be fully exhaustive and is meant as a starting point. Keep it up-to-date when drift is noticed.
Create status pages for tracking conformance of C++ZZ (
CxxZZIssues.csv,CxxZZPapers.csvand related).Create the associated views in the libc++ Conformance project.
CI updates
Add a new job testing C++ZZ
Move jobs that specify the previous standard over to C++ZZ (except jobs which intend to test older standard specifically)
Teach the test suite about C++ZZ (for example
--param std=c++zzin theLitconfiguration)Add files to track the transitive includes for C++ZZ
Add a new version for
_LIBCPP_STD_VERandTEST_STD_VERfor the test suiteNote that we don’t add various versioned macros until we need them (e.g.
_LIBCPP_CONSTEXPR_SINCE_CXXZZ)
Feature-test macros:
Update the FTM generation script to account for C++ZZ
Add any missing FTMs for the new standard version in the FTM generation script
Regenerate the FTM files
Update the tests for the FTM generation script itself