Page MenuHomePhabricator

[libc++] Remove old CI configurations and update the supported compiler versions
Needs RevisionPublic

Authored by philnik on Sep 6 2022, 10:03 AM.


Group Reviewers
Restricted Project

We don't support Clang 13 anymore and _LIBCPP_REMOVE_TRANSITIVE_INCLUDES doesn't do anything anymore in C++23 mode, so it's now just a duplicate of the C++23 configuration.

Diff Detail

Event Timeline

philnik created this revision.Sep 6 2022, 10:03 AM
Herald added a project: Restricted Project. · View Herald TranscriptSep 6 2022, 10:03 AM
philnik requested review of this revision.Sep 6 2022, 10:03 AM
Herald added a project: Restricted Project. · View Herald TranscriptSep 6 2022, 10:03 AM
Herald added a reviewer: Restricted Project. · View Herald Transcript
ldionne requested changes to this revision.Sep 7 2022, 7:17 PM

Please coordinate with @Mordante. I just approved a patch that removed support for Clang 13. I think this could become only a removal of the generic-no-transitive-includes CI configuration.

This revision now requires changes to proceed.Sep 7 2022, 7:17 PM

Thanks for working on this!


I would prefer to only mention releases here. Having Clang 16 may lead to confusion since it's not released yet.
For AppleClang we already have some version 14 support.
I feel having support for the work-in-progress function can be left implicit.


This part has already landed.


I didn't remove this part, and I would prefer it in a separate commit; which can be this commit.

philnik added inline comments.Sep 12 2022, 2:05 AM

I was actually always confused by the latest two stable releases. The released versions also only claim support for the last two versions, i.e. libc++14 claims compatibility with clang 12 and 13, but not 14 (see, which I find very confusing. The new wording makes the situation clear.


I'll split it if we want to reword the supported compilers.

Mordante added inline comments.Sep 12 2022, 10:19 AM

I see what you mean. However I think this wording doesn't work. When LLVM 16 will be released and current trunk would refer to LLVM 17. So that means LLVM 16 supports 14, 15, and 17. Still not 16. Maybe then we should list it like suggested.

Then we need to make sure we update this just prior to a release. How about adding a pre-release checklist here