Skip to content

Comments

Refactor jit.yml#144577

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

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

Conversation

@savannahostrowski
Copy link
Member

@savannahostrowski savannahostrowski commented Feb 7, 2026

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.

Copy link
Member

@hugovk hugovk left a comment

Choose a reason for hiding this comment

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

Looks good!

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
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
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
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
Member Author

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

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

@hugovk hugovk left a comment

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:main Feb 22, 2026
63 checks passed
@miss-islington-app
Copy link

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

@miss-islington-app
Copy link

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

bedevere-app bot commented Feb 22, 2026

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

@bedevere-app bedevere-app bot removed the needs backport to 3.14 bugs and security fixes label Feb 22, 2026
Sign up for free to 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