Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 35.2k
GH-144552: Clean up tail-call.yml CI#144553
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
savannahostrowski
merged 19 commits into
python:main
from
savannahostrowski:refactor-tailcall-ymlFeb 9, 2026
Uh oh!
There was an error while loading. Please reload this page.
Merged
Changes from all commits
Commits
Show all changes
19 commits
Select commit
Hold shift + click to select a range
1973909
Clean up tail call CI
savannahostrowski c81873c
Use matrix.llvm variable for clang-X version
hugovk 0be481b
Combine Linux steps into one
hugovk b3af4fa
Remove unused free_threading flag for Linux
hugovk 98b39fa
Merge pull request #15 from hugovk/3.15-refactor-tailcall-yml-combine…
savannahostrowski 37a355b
Combine Windows steps into one
hugovk c81886b
Merge pull request #16 from hugovk/3.15-refactor-tailcall-yml-combine…
savannahostrowski 9fc8d68
Remove commented and unused jobs
savannahostrowski f78c2a7
Remove guard since all jobs are x86_64 windows
savannahostrowski 1391a10
More cleanup and bump to 21
savannahostrowski c7169cf
Merge branch 'main' into refactor-tailcall-yml
savannahostrowski 824c6fb
Bump pre-commit hooks (#144576)
savannahostrowski 776df0f
Refactor into per-OS jobs
hugovk 96aa6b0
Split into install/build/test steps
hugovk b385150
Merge branch 'main' into refactor-tailcall-yml
savannahostrowski 425a73b
Refactor into per-OS jobs and more granular steps
savannahostrowski e29eade
Move if to step
savannahostrowski 3aa6701
Use 60 minute timeout
savannahostrowski bfe98d8
Merge branch 'main' into refactor-tailcall-yml
savannahostrowski File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Jump to file
Failed to load files.
Loading
Uh oh!
There was an error while loading. Please reload this page.
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,19 +1,14 @@ | ||
| name: Tail calling interpreter | ||
| on: | ||
| pull_request: | ||
| paths: | ||
| paths: &paths | ||
| - '.github/workflows/tail-call.yml' | ||
| - 'Python/bytecodes.c' | ||
| - 'Python/ceval.c' | ||
| - 'Python/ceval_macros.h' | ||
| - 'Python/generated_cases.c.h' | ||
| push: | ||
| paths: | ||
| - '.github/workflows/tail-call.yml' | ||
| - 'Python/bytecodes.c' | ||
| - 'Python/ceval.c' | ||
| - 'Python/ceval_macros.h' | ||
| - 'Python/generated_cases.c.h' | ||
| paths: *paths | ||
| workflow_dispatch: | ||
| permissions: | ||
| @@ -25,117 +20,109 @@ concurrency: | ||
| env: | ||
| FORCE_COLOR: 1 | ||
| LLVM_VERSION: 21 | ||
| jobs: | ||
| tail-call: | ||
| windows: | ||
| name: ${{ matrix.target }} | ||
| runs-on: ${{ matrix.runner }} | ||
| timeout-minutes: 90 | ||
| timeout-minutes: 60 | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| target: | ||
| # Un-comment as we add support for more platforms for tail-calling interpreters. | ||
| # - i686-pc-windows-msvc/msvc | ||
| - x86_64-pc-windows-msvc/msvc | ||
| - free-threading-msvc | ||
| # - aarch64-pc-windows-msvc/msvc | ||
| - x86_64-apple-darwin/clang | ||
| - aarch64-apple-darwin/clang | ||
| - x86_64-unknown-linux-gnu/gcc | ||
| - aarch64-unknown-linux-gnu/gcc | ||
| - free-threading | ||
| llvm: | ||
| - 20 | ||
| include: | ||
| # - target: i686-pc-windows-msvc/msvc | ||
| # architecture: Win32 | ||
| # runner: windows-2022 | ||
| - target: x86_64-pc-windows-msvc/msvc | ||
| architecture: x64 | ||
| runner: windows-2025-vs2026 | ||
| - target: free-threading-msvc | ||
| build_flags: "" | ||
| run_tests: true | ||
| - target: x86_64-pc-windows-msvc/msvc-free-threading | ||
| architecture: x64 | ||
| runner: windows-2025-vs2026 | ||
| # - target: aarch64-pc-windows-msvc/msvc | ||
| # architecture: ARM64 | ||
| # runner: windows-2022 | ||
| - target: x86_64-apple-darwin/clang | ||
| architecture: x86_64 | ||
| runner: macos-15-intel | ||
| - target: aarch64-apple-darwin/clang | ||
| architecture: aarch64 | ||
| runner: macos-14 | ||
| - target: x86_64-unknown-linux-gnu/gcc | ||
| architecture: x86_64 | ||
| runner: ubuntu-24.04 | ||
| - target: aarch64-unknown-linux-gnu/gcc | ||
| architecture: aarch64 | ||
| runner: ubuntu-24.04-arm | ||
| - target: free-threading | ||
| architecture: x86_64 | ||
| runner: ubuntu-24.04 | ||
| build_flags: --disable-gil | ||
| run_tests: false | ||
savannahostrowski marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
| steps: | ||
| - uses: actions/checkout@v6 | ||
| with: | ||
| persist-credentials: false | ||
| - uses: actions/setup-python@v6 | ||
| with: | ||
| python-version: '3.11' | ||
| - name: Native Windows MSVC (release) | ||
| if: runner.os == 'Windows' && matrix.architecture != 'ARM64' && matrix.target != 'free-threading-msvc' | ||
| - name: Build | ||
| shell: pwsh | ||
| run: | | ||
| $env:PlatformToolset = "v145" | ||
| ./PCbuild/build.bat --tail-call-interp -c Release -p ${{ matrix.architecture }} | ||
| ./PCbuild/rt.bat -p ${{ matrix.architecture }} -q --multiprocess 0 --timeout 4500 --verbose2 --verbose3 | ||
| # No tests: | ||
| - name: Native Windows MSVC with free-threading (release) | ||
| if: matrix.target == 'free-threading-msvc' | ||
| shell: pwsh | ||
| run: | | ||
| $env:PlatformToolset = "v145" | ||
| ./PCbuild/build.bat --tail-call-interp --disable-gil -c Release -p ${{ matrix.architecture }} | ||
| # No tests (yet): | ||
| - name: Emulated Windows Clang (release) | ||
| if: runner.os == 'Windows' && matrix.architecture == 'ARM64' | ||
| ./PCbuild/build.bat --tail-call-interp ${{ matrix.build_flags }} -c Release -p ${{ matrix.architecture }} | ||
| - name: Test | ||
| if: matrix.run_tests | ||
| shell: pwsh | ||
| run: | | ||
| choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.0 | ||
| $env:PlatformToolset = "clangcl" | ||
| $env:LLVMToolsVersion = "${{ matrix.llvm }}.1.0" | ||
| $env:LLVMInstallDir = "C:\Program Files\LLVM" | ||
| ./PCbuild/build.bat --tail-call-interp -p ${{ matrix.architecture }} | ||
| ./PCbuild/rt.bat -p ${{ matrix.architecture }} -q --multiprocess 0 --timeout 4500 --verbose2 --verbose3 | ||
| - name: Native macOS (release) | ||
| if: runner.os == 'macOS' | ||
| macos: | ||
| name: ${{ matrix.target }} | ||
| runs-on: ${{ matrix.runner }} | ||
| timeout-minutes: 60 | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| include: | ||
| - target: x86_64-apple-darwin/clang | ||
| runner: macos-15-intel | ||
| - target: aarch64-apple-darwin/clang | ||
| runner: macos-14 | ||
| steps: | ||
| - uses: actions/checkout@v6 | ||
| with: | ||
| persist-credentials: false | ||
| - uses: actions/setup-python@v6 | ||
| with: | ||
| python-version: '3.11' | ||
| - name: Install dependencies | ||
| run: | | ||
| brew update | ||
| brew install llvm@${{ matrix.llvm }} | ||
| brew install llvm@${{ env.LLVM_VERSION }} | ||
| - name: Build | ||
| run: | | ||
| export SDKROOT="$(xcrun --show-sdk-path)" | ||
| export PATH="/usr/local/opt/llvm@${{ matrix.llvm }}/bin:$PATH" | ||
| export PATH="/opt/homebrew/opt/llvm@${{ matrix.llvm }}/bin:$PATH" | ||
| CC=clang-20 ./configure --with-tail-call-interp | ||
| export PATH="/usr/local/opt/llvm@${{ env.LLVM_VERSION }}/bin:$PATH" | ||
| export PATH="/opt/homebrew/opt/llvm@${{ env.LLVM_VERSION }}/bin:$PATH" | ||
| CC=clang-${{ env.LLVM_VERSION }} ./configure --with-tail-call-interp | ||
| make all --jobs 4 | ||
| - name: Test | ||
| run: | | ||
| ./python.exe -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 | ||
| - name: Native Linux (debug) | ||
| if: runner.os == 'Linux' && matrix.target != 'free-threading' | ||
| linux: | ||
| name: ${{ matrix.target }} | ||
| runs-on: ${{ matrix.runner }} | ||
| timeout-minutes: 60 | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| include: | ||
| - target: x86_64-unknown-linux-gnu/gcc | ||
| runner: ubuntu-24.04 | ||
| configure_flags: --with-pydebug | ||
| - target: x86_64-unknown-linux-gnu/gcc-free-threading | ||
| runner: ubuntu-24.04 | ||
| configure_flags: --disable-gil | ||
| - target: aarch64-unknown-linux-gnu/gcc | ||
| runner: ubuntu-24.04-arm | ||
| configure_flags: --with-pydebug | ||
| steps: | ||
| - uses: actions/checkout@v6 | ||
| with: | ||
| persist-credentials: false | ||
| - uses: actions/setup-python@v6 | ||
| with: | ||
| python-version: '3.11' | ||
| - name: Build | ||
| run: | | ||
| sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }} | ||
| export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH" | ||
| CC=clang-20 ./configure --with-tail-call-interp --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" | ||
| CC=clang-${{ env.LLVM_VERSION }} ./configure --with-tail-call-interp ${{ matrix.configure_flags }} | ||
| make all --jobs 4 | ||
| ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 | ||
| - name: Native Linux with free-threading (release) | ||
| if: matrix.target == 'free-threading' | ||
| - name: Test | ||
| run: | | ||
| sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }} | ||
| export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH" | ||
| CC=clang-20 ./configure --with-tail-call-interp --disable-gil | ||
| make all --jobs 4 | ||
| ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 | ||
Oops, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.