Skip to content

Commit 2da48e3

Browse files
authored
GH-133171: Prevent combinations of --disable-gil and --enable-experimental-jit... for now (GH-133179)
1 parent f425509 commit 2da48e3

File tree

5 files changed

+48
-26
lines changed

5 files changed

+48
-26
lines changed

.github/workflows/jit.yml

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -126,29 +126,30 @@ jobs:
126126
make all --jobs 4
127127
./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3
128128
129-
jit-with-disabled-gil:
130-
name: Free-Threaded (Debug)
131-
needs: interpreter
132-
runs-on: ubuntu-24.04
133-
timeout-minutes: 90
134-
strategy:
135-
fail-fast: false
136-
matrix:
137-
llvm:
138-
- 19
139-
steps:
140-
- uses: actions/checkout@v4
141-
with:
142-
persist-credentials: false
143-
- uses: actions/setup-python@v5
144-
with:
145-
python-version: '3.11'
146-
- name: Build with JIT enabled and GIL disabled
147-
run: |
148-
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }}
149-
export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH"
150-
./configure --enable-experimental-jit --with-pydebug --disable-gil
151-
make all --jobs 4
152-
- name: Run tests
153-
run: |
154-
./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3
129+
# XXX: GH-133171
130+
# jit-with-disabled-gil:
131+
# name: Free-Threaded (Debug)
132+
# needs: interpreter
133+
# runs-on: ubuntu-24.04
134+
# timeout-minutes: 90
135+
# strategy:
136+
# fail-fast: false
137+
# matrix:
138+
# llvm:
139+
# - 19
140+
# steps:
141+
# - uses: actions/checkout@v4
142+
# with:
143+
# persist-credentials: false
144+
# - uses: actions/setup-python@v5
145+
# with:
146+
# python-version: '3.11'
147+
# - name: Build with JIT enabled and GIL disabled
148+
# run: |
149+
# sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }}
150+
# export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH"
151+
# ./configure --enable-experimental-jit --with-pydebug --disable-gil
152+
# make all --jobs 4
153+
# - name: Run tests
154+
# run: |
155+
# ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Since free-threaded builds do not support the experimental JIT compiler,
2+
prevent these configurations from being combined.

PCbuild/build.bat

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,13 @@ if "%do_pgo%" EQU "true" if "%platf%" EQU "x64" (
123123
)
124124
)
125125

126+
if "%UseDisableGil%" EQU "true" if "%UseTIER2%" NEQ "" (
127+
rem GH-133171: This configuration builds the JIT but never actually uses it,
128+
rem which is surprising (and strictly worse than not building it at all):
129+
echo.ERROR: --experimental-jit cannot be used with --disable-gil.
130+
exit /b 1
131+
)
132+
126133
if not exist "%GIT%" where git > "%TEMP%\git.loc" 2> nul && set /P GIT= < "%TEMP%\git.loc" & del "%TEMP%\git.loc"
127134
if exist "%GIT%" set GITProperty=/p:GIT="%GIT%"
128135
if not exist "%GIT%" echo Cannot find Git on PATH & set GITProperty=

configure

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

configure.ac

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2786,6 +2786,12 @@ AC_SUBST([REGEN_JIT_COMMAND])
27862786
AC_SUBST([JIT_STENCILS_H])
27872787
AC_MSG_RESULT([$tier2_flags $jit_flags])
27882788

2789+
if test "$disable_gil" = "yes" -a "$enable_experimental_jit" != "no"; then
2790+
# GH-133171: This configuration builds the JIT but never actually uses it,
2791+
# which is surprising (and strictly worse than not building it at all):
2792+
AC_MSG_ERROR([--enable-experimental-jit cannot be used with --disable-gil.])
2793+
fi
2794+
27892795
case "$ac_cv_cc_name" in
27902796
mpicc)
27912797
CFLAGS_NODIST="$CFLAGS_NODIST"

0 commit comments

Comments
 (0)