Skip to content

Refactor jit.yml - #144577

Merged
savannahostrowski merged 12 commits into
python:mainfrom
savannahostrowski:jit-yml-cleanup
Feb 22, 2026
Merged

Refactor jit.yml#144577
savannahostrowski merged 12 commits into
python:mainfrom
savannahostrowski:jit-yml-cleanup

Conversation

@savannahostrowski

@savannahostrowskisavannahostrowski commented Feb 7, 2026

Copy link
Copy Markdown
Member

Similar to #144553, this cleans up jit.yml. The biggest changes here are moving LLVM version to an env var, since we are only testing one version anyway, and consolidating all of the one-off jobs into one job with a matrix (we've been accumulating free-threading, JIT debug, JIT + tail call etc over time; I could probably be convinced this isn't worth the ~30 lines saved if the matrix feels too heterogeneous). I've also lessened timeout-minutes from 90 to 60 minutes to match other CI files.

I think this can also be backported to 3.14, though, the LLVM version will be 20 instead of 21.

@hugovkhugovk left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

Comment thread.github/workflows/jit.yml Outdated
Comment thread.github/workflows/jit.yml Outdated
Comment thread.github/workflows/jit.yml Outdated
Comment thread.github/workflows/jit.yml Outdated
Comment thread.github/workflows/jit.yml Outdated
Comment on lines +116 to +123
- name: Build
run: |
export SDKROOT="$(xcrun --show-sdk-path)"
# Set MACOSX_DEPLOYMENT_TARGET and -Werror=unguarded-availability to
# make sure we don't break downstream distributors (like uv):
export CFLAGS_JIT='-Werror=unguarded-availability'
export MACOSX_DEPLOYMENT_TARGET=10.15
./configure --enable-experimental-jit --enable-universalsdk --with-universal-archs=universal2 ${{ matrix.debug && '--with-pydebug' || '' }}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comparing tail-call.yml, that one exports a couple of paths and sets CC:

Image

Do we need this here? Or do we not need it there?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

JIT auto finds required clang, so we dont need CC

./configure --enable-experimental-jit --with-pydebug
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ env.LLVM_VERSION }}
export PATH="$(llvm-config-${{ env.LLVM_VERSION }} --bindir):$PATH"
./configure --enable-experimental-jit ${{ matrix.debug && '--with-pydebug' || '' }}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comparing again:

Image

We always set CC in tail-call.yml but not here. Also below, in linux-extras, CC is conditionally set. All intentional?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that is intentional. In tail-call.yml, we always need clang because the tail-call interpreter uses musttail attributes that are clang-specific. For "regular" JIT jobs, we just use LLVM internally during the build process so not needed. For the JIT + tail-call, we need CC=clang again for the same reasons as tail-call.yml

savannahostrowskiand others added 2 commits February 22, 2026 09:48
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>

@hugovkhugovk left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@savannahostrowski
savannahostrowski enabled auto-merge (squash) February 22, 2026 18:16
@savannahostrowski
savannahostrowski merged commit 819ea3c into python:mainFeb 22, 2026
63 checks passed
@miss-islington-app

Copy link
Copy Markdown

Thanks @savannahostrowski for the PR 🌮🎉.. I'm working now to backport this PR to: 3.14.
🐍🍒⛏🤖

@miss-islington-app

Copy link
Copy Markdown

Sorry, @savannahostrowski, I could not cleanly backport this to 3.14 due to a conflict.
Please backport using cherry_picker on command line.

cherry_picker 819ea3ca6836026bc611d0c8ea1cd5e95cbefc09 3.14

@bedevere-app

Copy link
Copy Markdown

GH-145126 is a backport of this pull request to the 3.14 branch.

@bedevere-appbedevere-appBot removed the needs backport to 3.14 bugs and security fixes label Feb 22, 2026
savannahostrowski added a commit that referenced this pull request Feb 23, 2026
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
brijkapadia pushed a commit to brijkapadia/cpython that referenced this pull request Feb 28, 2026
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
ljfp pushed a commit to ljfp/cpython that referenced this pull request Apr 25, 2026
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@savannahostrowski@hugovk@Fidget-Spinner