[libcxx-commits] [libcxx] [libc++] Stabilize transitive includes for C++23 (PR #134143)

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Tue May 6 12:53:53 PDT 2025


ldionne wrote:

> Is there a specific reason to do this now? Did you see any significant breakage so far? FWIW I'm not actually sure our current approach is that helpful in C++23, since we're only rarely including public headers nowadays.

Yes, this change is prompted by fairly wide breakage we saw internally with LLVM 20. It's not as wide as the breakage we initially saw when we started the granularization effort, but it's very noticeable.

> It seems I missed/forgot C++20's headers are considered stable. Is there a way we can automatically validate this policy in the CI?

We already do validate the stability of headers with the transitive inclusion tests that you're aware of. However, so far we were happy to approve patches that changed the `.csv` files describing transitive includes for C++23 -- this patch documents that we shouldn't do that anymore. It would technically be possible to test this policy in the CI by adding a test to ensure that we don't modify the list of transitive includes for C++23, however I think the value of such a test would be almost none (and we'd have other change it whenever we make additive changes to the transitive includes). So really I think this comes down to the review process.

https://github.com/llvm/llvm-project/pull/134143


More information about the libcxx-commits mailing list