Skip to content

Add a Clang 24 CI job to protect the modular build - #2308

Merged
ericniebler merged 2 commits into
NVIDIA:mainfrom
ispeters:ci-clang-trunk-modules
Oct 8, 2026
Merged

ericniebler merged 2 commits into
NVIDIA:mainfrom
ispeters:ci-clang-trunk-modules

Conversation

@ispeters

@ispeters ispeters commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

This changes replaces the existing modular Clang 22 build with a Clang 24 build that builds Clang from source before building stdexec. It pins Clang 24 to the commit that resolved the ICE that plagued Clang 22 and 23.

The Clang build is cached separately from the stdexec build so that it should only have to be built once.

The first build will fail until this change is rebased on #2307.

@copy-pr-bot

copy-pr-bot Bot commented Oct 7, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

Add a "CPU (clang trunk, Debug, modules)" row to the CPU matrix that
builds Clang from llvm-project at a pinned commit and uses it for the
modular build. The pin is the merge of llvm/llvm-project#224528
(f970f59a9d4e), which fixes the nondeterministic Clang 23.1.0 ICE in
ImplicitConceptSpecializationDecl deserialization
(llvm/llvm-project#191361) that the modular build hits.

The job reuses the existing llvm22 rapidsai devcontainer image. It
builds a stripped Release toolchain limited to what the modular build
needs (clang, its resource headers, clang-scan-deps, and
libc++/libc++abi/libunwind) and caches it keyed on the commit and
image tag, saving the cache explicitly so a failing stdexec build
doesn't discard it. Only bumping llvm_sha or the image tag triggers a
rebuild.

Rows without llvm_sha are unaffected: the new steps are skipped and the
configure line falls back to the image's libc++.modules.json as before.
The Clang 22 modules row was allowed to fail because every released
22.1.x ICEs in the modular build. The from-source row now covers the
modular build with a compiler that doesn't, so the Clang 22 row adds
nothing. Update MAINTAINERS.md to say which compiler the modular build
is tested with.
@ericniebler
ericniebler force-pushed the ci-clang-trunk-modules branch from 5f49f1b to 25d91ff Compare October 8, 2026 00:10
@ericniebler

Copy link
Copy Markdown
Collaborator

/ok to test 25d91ff

@ericniebler
ericniebler merged commit abde4e4 into NVIDIA:main Oct 8, 2026
39 checks passed
@ericniebler

Copy link
Copy Markdown
Collaborator

Thanks @ispeters !

@ispeters
ispeters deleted the ci-clang-trunk-modules branch October 8, 2026 03:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants