From 1076f100d6c782789382f63415dd6a3bdc834540 Mon Sep 17 00:00:00 2001 From: Brandt Bucher Date: Tue, 29 Apr 2025 15:34:15 -0700 Subject: [PATCH 1/3] --disable-gil doesn't support --enable-experimental-jit --- PCbuild/build.bat | 7 +++++++ configure | 6 ++++++ configure.ac | 6 ++++++ 3 files changed, 19 insertions(+) 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 205f196a25af2d..cbf467f4a53fe1 100755 --- a/configure +++ b/configure @@ -8412,6 +8412,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 + # Enable optimization flags diff --git a/configure.ac b/configure.ac index f0ae7fbec1cbfe..f4cdc6184d5c8d 100644 --- a/configure.ac +++ b/configure.ac @@ -1837,6 +1837,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 + # Enable optimization flags AC_SUBST([DEF_MAKE_ALL_RULE]) AC_SUBST([DEF_MAKE_RULE]) From 9b9ff5dad98a49d8cabd13f8e7a96aa692b80c67 Mon Sep 17 00:00:00 2001 From: Brandt Bucher Date: Tue, 29 Apr 2025 15:34:21 -0700 Subject: [PATCH 2/3] blurb add --- .../next/Build/2025-04-29-15-29-11.gh-issue-133171.YbwbwP.rst | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 Misc/NEWS.d/next/Build/2025-04-29-15-29-11.gh-issue-133171.YbwbwP.rst 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. From 976cdb9375bfb9524d9d37483187875e5aec86bc Mon Sep 17 00:00:00 2001 From: Brandt Bucher Date: Tue, 29 Apr 2025 17:17:08 -0700 Subject: [PATCH 3/3] Remove JIT/FT CI job --- .github/workflows/jit.yml | 53 ++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/.github/workflows/jit.yml b/.github/workflows/jit.yml index e08d3c8bfd61a8..385a955c3f45a1 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 pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy