11name : JIT
22on :
33 pull_request :
4- paths :
4+ paths : &paths
55 - ' **jit**'
66 - ' Python/bytecodes.c'
77 - ' Python/optimizer*.c'
1212 - ' !**/*.md'
1313 - ' !**/*.ini'
1414 push :
15- paths :
16- - ' **jit**'
17- - ' Python/bytecodes.c'
18- - ' Python/optimizer*.c'
19- - ' Python/executor_cases.c.h'
20- - ' Python/optimizer_cases.c.h'
21- - ' **_testinternalcapi**'
22- - ' !Python/perf_jit_trampoline.c'
23- - ' !**/*.md'
24- - ' !**/*.ini'
15+ paths : *paths
2516 workflow_dispatch :
2617
2718permissions :
@@ -33,6 +24,7 @@ concurrency:
3324
3425env :
3526 FORCE_COLOR : 1
27+ LLVM_VERSION : 21
3628
3729jobs :
3830 interpreter :
5850 strategy :
5951 fail-fast : false
6052 matrix :
61- target :
62- - i686-pc-windows-msvc/msvc
63- - x86_64-pc-windows-msvc/msvc
64- - aarch64-pc-windows-msvc/msvc
65- - x86_64-apple-darwin/clang
66- - aarch64-apple-darwin/clang
67- - x86_64-unknown-linux-gnu/gcc
68- - aarch64-unknown-linux-gnu/gcc
6953 debug :
7054 - true
7155 - false
72- llvm :
73- - 21
7456 include :
7557 - target : i686-pc-windows-msvc/msvc
7658 architecture : Win32
11294 if : runner.os == 'macOS'
11395 run : |
11496 brew update
115- brew install llvm@${{ matrix.llvm }}
97+ brew install llvm@${{ env.LLVM_VERSION }}
11698 export SDKROOT="$(xcrun --show-sdk-path)"
11799 # Set MACOSX_DEPLOYMENT_TARGET and -Werror=unguarded-availability to
118100 # make sure we don't break downstream distributors (like uv):
@@ -125,8 +107,8 @@ jobs:
125107 - name : Linux
126108 if : runner.os == 'Linux'
127109 run : |
128- sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }}
129- export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH"
110+ sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ env.LLVM_VERSION }}
111+ export PATH="$(llvm-config-${{ env.LLVM_VERSION }} --bindir):$PATH"
130112 ./configure --enable-experimental-jit ${{ matrix.debug && '--with-pydebug' || '' }}
131113 make all --jobs 4
132114 ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3
@@ -138,9 +120,6 @@ jobs:
138120 timeout-minutes : 90
139121 strategy :
140122 fail-fast : false
141- matrix :
142- llvm :
143- - 21
144123 steps :
145124 - uses : actions/checkout@v6
146125 with :
@@ -150,8 +129,8 @@ jobs:
150129 python-version : ' 3.11'
151130 - name : Build with JIT enabled and GIL disabled
152131 run : |
153- sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }}
154- export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH"
132+ sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ env.LLVM_VERSION }}
133+ export PATH="$(llvm-config-${{ env.LLVM_VERSION }} --bindir):$PATH"
155134 ./configure --enable-experimental-jit --with-pydebug --disable-gil
156135 make all --jobs 4
157136 - name : Run tests
@@ -166,9 +145,6 @@ jobs:
166145 timeout-minutes : 90
167146 strategy :
168147 fail-fast : false
169- matrix :
170- llvm :
171- - 21
172148 steps :
173149 - uses : actions/checkout@v6
174150 with :
@@ -178,8 +154,8 @@ jobs:
178154 python-version : ' 3.11'
179155 - name : Build with JIT
180156 run : |
181- sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }}
182- export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH"
157+ sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ env.LLVM_VERSION }}
158+ export PATH="$(llvm-config-${{ env.LLVM_VERSION }} --bindir):$PATH"
183159 ./configure --enable-experimental-jit --with-pydebug
184160 make all --jobs 4
185161 - name : Run tests without optimizations
@@ -193,9 +169,6 @@ jobs:
193169 timeout-minutes : 90
194170 strategy :
195171 fail-fast : false
196- matrix :
197- llvm :
198- - 21
199172 steps :
200173 - uses : actions/checkout@v6
201174 with :
@@ -205,7 +178,7 @@ jobs:
205178 python-version : ' 3.11'
206179 - name : Build with JIT and tailcall
207180 run : |
208- sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }}
209- export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH"
210- CC=clang-${{ matrix.llvm }} ./configure --enable-experimental-jit --with-tail-call-interp --with-pydebug
181+ sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ env.LLVM_VERSION }}
182+ export PATH="$(llvm-config-${{ env.LLVM_VERSION }} --bindir):$PATH"
183+ CC=clang-${{ env.LLVM_VERSION }} ./configure --enable-experimental-jit --with-tail-call-interp --with-pydebug
211184 make all --jobs 4
0 commit comments