https://github.com/python/cpython/commit/2da48e32f64d09eb2408301f8ef5f3a02a5cbe1a commit: 2da48e32f64d09eb2408301f8ef5f3a02a5cbe1a branch: main author: Brandt Bucher <brandtbuc...@microsoft.com> committer: brandtbucher <brandtbuc...@gmail.com> date: 2025-05-02T09:26:03-07:00 summary:
GH-133171: Prevent combinations of --disable-gil and --enable-experimental-jit... for now (GH-133179) files: A Misc/NEWS.d/next/Build/2025-04-29-15-29-11.gh-issue-133171.YbwbwP.rst M .github/workflows/jit.yml M PCbuild/build.bat M configure M configure.ac diff --git a/.github/workflows/jit.yml b/.github/workflows/jit.yml index af460f4264932c..6ea238d294ca89 100644 --- a/.github/workflows/jit.yml +++ b/.github/workflows/jit.yml @@ -126,29 +126,30 @@ jobs: make all --jobs 4 ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 - jit-with-disabled-gil: - name: Free-Threaded (Debug) - needs: interpreter - runs-on: ubuntu-24.04 - timeout-minutes: 90 - strategy: - fail-fast: false - matrix: - llvm: - - 19 - steps: - - uses: actions/checkout@v4 - with: - persist-credentials: false - - uses: actions/setup-python@v5 - with: - python-version: '3.11' - - name: Build with JIT enabled and GIL disabled - run: | - sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }} - export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH" - ./configure --enable-experimental-jit --with-pydebug --disable-gil - make all --jobs 4 - - name: Run tests - run: | - ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 + # XXX: GH-133171 + # jit-with-disabled-gil: + # name: Free-Threaded (Debug) + # needs: interpreter + # runs-on: ubuntu-24.04 + # timeout-minutes: 90 + # strategy: + # fail-fast: false + # matrix: + # llvm: + # - 19 + # steps: + # - uses: actions/checkout@v4 + # with: + # persist-credentials: false + # - uses: actions/setup-python@v5 + # with: + # python-version: '3.11' + # - name: Build with JIT enabled and GIL disabled + # run: | + # sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }} + # export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH" + # ./configure --enable-experimental-jit --with-pydebug --disable-gil + # make all --jobs 4 + # - name: Run tests + # run: | + # ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 diff --git a/Misc/NEWS.d/next/Build/2025-04-29-15-29-11.gh-issue-133171.YbwbwP.rst b/Misc/NEWS.d/next/Build/2025-04-29-15-29-11.gh-issue-133171.YbwbwP.rst new file mode 100644 index 00000000000000..6207ffa851d225 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2025-04-29-15-29-11.gh-issue-133171.YbwbwP.rst @@ -0,0 +1,2 @@ +Since free-threaded builds do not support the experimental JIT compiler, +prevent these configurations from being combined. diff --git a/PCbuild/build.bat b/PCbuild/build.bat index db67ae72981345..88d6b99d651cf3 100644 --- a/PCbuild/build.bat +++ b/PCbuild/build.bat @@ -123,6 +123,13 @@ if "%do_pgo%" EQU "true" if "%platf%" EQU "x64" ( ) ) +if "%UseDisableGil%" EQU "true" if "%UseTIER2%" NEQ "" ( + rem GH-133171: This configuration builds the JIT but never actually uses it, + rem which is surprising (and strictly worse than not building it at all): + echo.ERROR: --experimental-jit cannot be used with --disable-gil. + exit /b 1 +) + if not exist "%GIT%" where git > "%TEMP%\git.loc" 2> nul && set /P GIT= < "%TEMP%\git.loc" & del "%TEMP%\git.loc" if exist "%GIT%" set GITProperty=/p:GIT="%GIT%" if not exist "%GIT%" echo Cannot find Git on PATH & set GITProperty= diff --git a/configure b/configure index 1ec91021a38b66..7dbb35f9f45f4b 100755 --- a/configure +++ b/configure @@ -10866,6 +10866,12 @@ fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tier2_flags $jit_flags" >&5 printf "%s\n" "$tier2_flags $jit_flags" >&6; } +if test "$disable_gil" = "yes" -a "$enable_experimental_jit" != "no"; then + # GH-133171: This configuration builds the JIT but never actually uses it, + # which is surprising (and strictly worse than not building it at all): + as_fn_error $? "--enable-experimental-jit cannot be used with --disable-gil." "$LINENO" 5 +fi + case "$ac_cv_cc_name" in mpicc) CFLAGS_NODIST="$CFLAGS_NODIST" diff --git a/configure.ac b/configure.ac index 16367b3ea53c27..65f265045ba318 100644 --- a/configure.ac +++ b/configure.ac @@ -2786,6 +2786,12 @@ AC_SUBST([REGEN_JIT_COMMAND]) AC_SUBST([JIT_STENCILS_H]) AC_MSG_RESULT([$tier2_flags $jit_flags]) +if test "$disable_gil" = "yes" -a "$enable_experimental_jit" != "no"; then + # GH-133171: This configuration builds the JIT but never actually uses it, + # which is surprising (and strictly worse than not building it at all): + AC_MSG_ERROR([--enable-experimental-jit cannot be used with --disable-gil.]) +fi + case "$ac_cv_cc_name" in mpicc) CFLAGS_NODIST="$CFLAGS_NODIST" _______________________________________________ Python-checkins mailing list -- python-checkins@python.org To unsubscribe send an email to python-checkins-le...@python.org https://mail.python.org/mailman3/lists/python-checkins.python.org/ Member address: arch...@mail-archive.com