From ab0a61124a56315d3595792813a7f1506713420f Mon Sep 17 00:00:00 2001 From: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Date: Wed, 12 Feb 2025 20:54:45 +0800 Subject: [PATCH 01/14] Tail-calling flag for Window --- PCbuild/build.bat | 3 +++ PCbuild/pythoncore.vcxproj | 3 +++ 2 files changed, 6 insertions(+) diff --git a/PCbuild/build.bat b/PCbuild/build.bat index d3e3894c203a65..317bdaa3c9ff16 100644 --- a/PCbuild/build.bat +++ b/PCbuild/build.bat @@ -40,6 +40,7 @@ echo. --experimental-jit Enable the experimental just-in-time compiler echo. --experimental-jit-off Ditto but off by default (PYTHON_JIT=1 enables). echo. --experimental-jit-interpreter Enable the experimental Tier 2 interpreter. echo. --pystats Enable PyStats collection. +echo. --tail-call-interp Enable tail-calling interpreter. echo. echo.Available flags to avoid building certain modules. echo.These flags have no effect if '-e' is not given: @@ -95,6 +96,7 @@ if "%~1"=="--experimental-jit-off" (set UseJIT=true) & (set UseTIER2=3) & shift if "%~1"=="--experimental-jit-interpreter" (set UseTIER2=4) & shift & goto CheckOpts if "%~1"=="--experimental-jit-interpreter-off" (set UseTIER2=6) & shift & goto CheckOpts if "%~1"=="--pystats" (set PyStats=1) & shift & goto CheckOpts +if "%~1"=="--tail-call-interp" (set UseTailCallInterp=true) & shift & goto CheckOpts rem These use the actual property names used by MSBuild. We could just let rem them in through the environment, but we specify them on the command line rem anyway for visibility so set defaults after this @@ -189,6 +191,7 @@ echo on /p:UseJIT=%UseJIT%^ /p:UseTIER2=%UseTIER2%^ /p:PyStats=%PyStats%^ + /p:UseTailCallInterp=%UseTailCallInterp%^ %1 %2 %3 %4 %5 %6 %7 %8 %9 @echo off diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj index 9ebf58ae8a9bc4..a42f2e1bb26153 100644 --- a/PCbuild/pythoncore.vcxproj +++ b/PCbuild/pythoncore.vcxproj @@ -703,6 +703,9 @@ $(PyConfigHText.Replace('/* #define Py_GIL_DISABLED 1 */', '#define Py_GIL_DISABLED 1')) + + $(PyConfigHText.Replace('/* #define Py_TAIL_CALL_INTERP 1 */', '#define Py_TAIL_CALL_INTERP 1')) + Date: Wed, 12 Feb 2025 21:41:27 +0800 Subject: [PATCH 02/14] Update pythoncore.vcxproj --- PCbuild/pythoncore.vcxproj | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj index a42f2e1bb26153..5903af3e5747e6 100644 --- a/PCbuild/pythoncore.vcxproj +++ b/PCbuild/pythoncore.vcxproj @@ -106,6 +106,7 @@ _Py_HAVE_ZLIB;%(PreprocessorDefinitions) _Py_JIT;%(PreprocessorDefinitions) _Py_TIER2=$(UseTIER2);%(PreprocessorDefinitions) + Py_TAIL_CALL_INTERP;%(PreprocessorDefinitions) version.lib;ws2_32.lib;pathcch.lib;bcrypt.lib;%(AdditionalDependencies) @@ -703,9 +704,6 @@ $(PyConfigHText.Replace('/* #define Py_GIL_DISABLED 1 */', '#define Py_GIL_DISABLED 1')) - - $(PyConfigHText.Replace('/* #define Py_TAIL_CALL_INTERP 1 */', '#define Py_TAIL_CALL_INTERP 1')) - Date: Wed, 12 Feb 2025 21:56:35 +0800 Subject: [PATCH 03/14] Add Windows to the tailcall CI --- .github/workflows/tail-call.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/tail-call.yml b/.github/workflows/tail-call.yml index 4c2516c517b3a9..0fbbeedc1f3caf 100644 --- a/.github/workflows/tail-call.yml +++ b/.github/workflows/tail-call.yml @@ -35,7 +35,7 @@ jobs: 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 + - x86_64-pc-windows-msvc/msvc # - aarch64-pc-windows-msvc/msvc - x86_64-apple-darwin/clang - aarch64-apple-darwin/clang @@ -47,9 +47,9 @@ jobs: # - target: i686-pc-windows-msvc/msvc # architecture: Win32 # runner: windows-latest -# - target: x86_64-pc-windows-msvc/msvc -# architecture: x64 -# runner: windows-latest + - target: x86_64-pc-windows-msvc/msvc + architecture: x64 + runner: windows-latest # - target: aarch64-pc-windows-msvc/msvc # architecture: ARM64 # runner: windows-latest @@ -76,22 +76,22 @@ jobs: - name: Native Windows (debug) if: runner.os == 'Windows' && matrix.architecture != 'ARM64' run: | - choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.0 - ./PCbuild/build.bat --tail-call-interp -d -p ${{ matrix.architecture }} + choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.5 + ./PCbuild/build.bat --tail-call-interp -d -p ${{ matrix.architecture }} /p:PlatformToolset=clangcl /p:LLVMToolsVersion=19.1.5 /p:LLVMInstallDir=C:\Program Files\LLVM ./PCbuild/rt.bat -d -p ${{ matrix.architecture }} -q --multiprocess 0 --timeout 4500 --verbose2 --verbose3 # No tests (yet): - name: Emulated Windows (release) if: runner.os == 'Windows' && matrix.architecture == 'ARM64' run: | - choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.0 - ./PCbuild/build.bat --tail-call-interp -p ${{ matrix.architecture }} + choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.5 + ./PCbuild/build.bat --tail-call-interp -p ${{ matrix.architecture }} /p:PlatformToolset=clangcl /p:LLVMToolsVersion=19.1.5 /p:LLVMInstallDir=C:\Program Files\LLVM # The `find` line is required as a result of https://github.com/actions/runner-images/issues/9966. # This is a bug in the macOS runner image where the pre-installed Python is installed in the same # directory as the Homebrew Python, which causes the build to fail for macos-13. This line removes # the symlink to the pre-installed Python so that the Homebrew Python is used instead. - - name: Native macOS (debug) + - name: Native macOS (release) if: runner.os == 'macOS' run: | brew update @@ -100,16 +100,16 @@ jobs: export SDKROOT="$(xcrun --show-sdk-path)" export PATH="/opt/homebrew/opt/llvm/bin:$PATH" export PATH="/usr/local/opt/llvm/bin:$PATH" - CC=clang-19 ./configure --with-tail-call-interp --with-pydebug + CC=clang-19 ./configure --with-tail-call-interp make all --jobs 4 ./python.exe -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 - - name: Native Linux (release) + - name: Native Linux (debug) if: runner.os == 'Linux' 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-19 ./configure --with-tail-call-interp + CC=clang-19 ./configure --with-tail-call-interp --with-pydebug make all --jobs 4 ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 From 4dd19cfd86dcdf7deafa387ac05c1f6017348a50 Mon Sep 17 00:00:00 2001 From: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Date: Wed, 12 Feb 2025 22:08:07 +0800 Subject: [PATCH 04/14] Update tail-call.yml --- .github/workflows/tail-call.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tail-call.yml b/.github/workflows/tail-call.yml index 0fbbeedc1f3caf..c021f3d729a505 100644 --- a/.github/workflows/tail-call.yml +++ b/.github/workflows/tail-call.yml @@ -6,12 +6,14 @@ on: - 'Python/ceval.c' - 'Python/ceval_macros.h' - 'Python/generated_cases.c.h' + - '.github/workflows/tail-call.yml' push: paths: - 'Python/bytecodes.c' - 'Python/ceval.c' - 'Python/ceval_macros.h' - 'Python/generated_cases.c.h' + - '.github/workflows/tail-call.yml' workflow_dispatch: permissions: @@ -77,7 +79,7 @@ jobs: if: runner.os == 'Windows' && matrix.architecture != 'ARM64' run: | choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.5 - ./PCbuild/build.bat --tail-call-interp -d -p ${{ matrix.architecture }} /p:PlatformToolset=clangcl /p:LLVMToolsVersion=19.1.5 /p:LLVMInstallDir=C:\Program Files\LLVM + ./PCbuild/build.bat --tail-call-interp -d -p ${{ matrix.architecture }} "/p:PlatformToolset=clangcl" "/p:LLVMToolsVersion=19.1.5" "/p:LLVMInstallDir=C:\Program Files\LLVM" ./PCbuild/rt.bat -d -p ${{ matrix.architecture }} -q --multiprocess 0 --timeout 4500 --verbose2 --verbose3 # No tests (yet): @@ -85,7 +87,7 @@ jobs: if: runner.os == 'Windows' && matrix.architecture == 'ARM64' run: | choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.5 - ./PCbuild/build.bat --tail-call-interp -p ${{ matrix.architecture }} /p:PlatformToolset=clangcl /p:LLVMToolsVersion=19.1.5 /p:LLVMInstallDir=C:\Program Files\LLVM + ./PCbuild/build.bat --tail-call-interp -p ${{ matrix.architecture }} "/p:PlatformToolset=clangcl" "/p:LLVMToolsVersion=19.1.5" "/p:LLVMInstallDir=C:\Program Files\LLVM" # The `find` line is required as a result of https://github.com/actions/runner-images/issues/9966. # This is a bug in the macOS runner image where the pre-installed Python is installed in the same From 7f91920bd915123792d1a1ec8e28300f9f27cb16 Mon Sep 17 00:00:00 2001 From: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Date: Wed, 12 Feb 2025 23:05:51 +0800 Subject: [PATCH 05/14] Update tail-call.yml --- .github/workflows/tail-call.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/tail-call.yml b/.github/workflows/tail-call.yml index c021f3d729a505..cb707b5f663d6f 100644 --- a/.github/workflows/tail-call.yml +++ b/.github/workflows/tail-call.yml @@ -77,6 +77,7 @@ jobs: - name: Native Windows (debug) if: runner.os == 'Windows' && matrix.architecture != 'ARM64' + shell: cmd run: | choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.5 ./PCbuild/build.bat --tail-call-interp -d -p ${{ matrix.architecture }} "/p:PlatformToolset=clangcl" "/p:LLVMToolsVersion=19.1.5" "/p:LLVMInstallDir=C:\Program Files\LLVM" @@ -85,6 +86,7 @@ jobs: # No tests (yet): - name: Emulated Windows (release) if: runner.os == 'Windows' && matrix.architecture == 'ARM64' + shell: cmd run: | choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.5 ./PCbuild/build.bat --tail-call-interp -p ${{ matrix.architecture }} "/p:PlatformToolset=clangcl" "/p:LLVMToolsVersion=19.1.5" "/p:LLVMInstallDir=C:\Program Files\LLVM" From c3d656bf4250a6ca393fce0c0bbadaf8597fc4c1 Mon Sep 17 00:00:00 2001 From: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Date: Thu, 13 Feb 2025 00:09:42 +0800 Subject: [PATCH 06/14] Update pycore_debug_offsets.h --- Include/internal/pycore_debug_offsets.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Include/internal/pycore_debug_offsets.h b/Include/internal/pycore_debug_offsets.h index 44feb079571a73..f932dba7a47301 100644 --- a/Include/internal/pycore_debug_offsets.h +++ b/Include/internal/pycore_debug_offsets.h @@ -39,7 +39,7 @@ extern "C" { #define _GENERATE_DEBUG_SECTION_APPLE(name) #endif -#if defined(__linux__) && (defined(__GNUC__) || defined(__clang__)) +#if defined(__linux__) && (defined(__GNUC__) || defined(__clang__) && !defined(MS_WINDOWS)) #define _GENERATE_DEBUG_SECTION_LINUX(name) \ __attribute__((section("." Py_STRINGIFY(name)))) \ __attribute__((used)) From 3638cda551c7c5d174fc856fe81f9ecb77507b14 Mon Sep 17 00:00:00 2001 From: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Date: Thu, 13 Feb 2025 00:39:55 +0800 Subject: [PATCH 07/14] Update pycore_debug_offsets.h --- Include/internal/pycore_debug_offsets.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Include/internal/pycore_debug_offsets.h b/Include/internal/pycore_debug_offsets.h index f932dba7a47301..6c7d57d020784b 100644 --- a/Include/internal/pycore_debug_offsets.h +++ b/Include/internal/pycore_debug_offsets.h @@ -39,7 +39,7 @@ extern "C" { #define _GENERATE_DEBUG_SECTION_APPLE(name) #endif -#if defined(__linux__) && (defined(__GNUC__) || defined(__clang__) && !defined(MS_WINDOWS)) +#if defined(__linux__) && (defined(__GNUC__) || (defined(__clang__) && !defined(MS_WINDOWS))) #define _GENERATE_DEBUG_SECTION_LINUX(name) \ __attribute__((section("." Py_STRINGIFY(name)))) \ __attribute__((used)) From b8b79ed9ed0658221d7d2d4099db6f36cc192604 Mon Sep 17 00:00:00 2001 From: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Date: Thu, 13 Feb 2025 00:50:01 +0800 Subject: [PATCH 08/14] Update pycore_debug_offsets.h --- Include/internal/pycore_debug_offsets.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Include/internal/pycore_debug_offsets.h b/Include/internal/pycore_debug_offsets.h index 6c7d57d020784b..a61096c17f143b 100644 --- a/Include/internal/pycore_debug_offsets.h +++ b/Include/internal/pycore_debug_offsets.h @@ -23,7 +23,7 @@ extern "C" { declaration \ _GENERATE_DEBUG_SECTION_LINUX(name) -#if defined(MS_WINDOWS) +#if defined(MS_WINDOWS) && !defined(__clang__) #define _GENERATE_DEBUG_SECTION_WINDOWS(name) \ _Pragma(Py_STRINGIFY(section(Py_STRINGIFY(name), read, write))) \ __declspec(allocate(Py_STRINGIFY(name))) @@ -39,7 +39,7 @@ extern "C" { #define _GENERATE_DEBUG_SECTION_APPLE(name) #endif -#if defined(__linux__) && (defined(__GNUC__) || (defined(__clang__) && !defined(MS_WINDOWS))) +#if defined(__linux__) && (defined(__GNUC__) || defined(__clang__)) #define _GENERATE_DEBUG_SECTION_LINUX(name) \ __attribute__((section("." Py_STRINGIFY(name)))) \ __attribute__((used)) From c811b8a9ab4328e422335368809d4196b13c7e31 Mon Sep 17 00:00:00 2001 From: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Date: Thu, 13 Feb 2025 21:56:39 +0800 Subject: [PATCH 09/14] Address review by using env vars --- .github/workflows/tail-call.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tail-call.yml b/.github/workflows/tail-call.yml index cb707b5f663d6f..d97c7cfa6b1c7d 100644 --- a/.github/workflows/tail-call.yml +++ b/.github/workflows/tail-call.yml @@ -80,7 +80,10 @@ jobs: shell: cmd run: | choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.5 - ./PCbuild/build.bat --tail-call-interp -d -p ${{ matrix.architecture }} "/p:PlatformToolset=clangcl" "/p:LLVMToolsVersion=19.1.5" "/p:LLVMInstallDir=C:\Program Files\LLVM" + set PlatformToolset=clangcl + set LLVMToolsVersion=19.1.5 + set LLVMInstallDir=C:\Program Files\LLVM + ./PCbuild/build.bat --tail-call-interp -d -p ${{ matrix.architecture }} ./PCbuild/rt.bat -d -p ${{ matrix.architecture }} -q --multiprocess 0 --timeout 4500 --verbose2 --verbose3 # No tests (yet): @@ -89,7 +92,10 @@ jobs: shell: cmd run: | choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.5 - ./PCbuild/build.bat --tail-call-interp -p ${{ matrix.architecture }} "/p:PlatformToolset=clangcl" "/p:LLVMToolsVersion=19.1.5" "/p:LLVMInstallDir=C:\Program Files\LLVM" + set PlatformToolset=clangcl + set LLVMToolsVersion=19.1.5 + set LLVMInstallDir=C:\Program Files\LLVM + ./PCbuild/build.bat --tail-call-interp -p ${{ matrix.architecture }} # The `find` line is required as a result of https://github.com/actions/runner-images/issues/9966. # This is a bug in the macOS runner image where the pre-installed Python is installed in the same From 166187cf679272f6a1fc7bfb0afc679ea8e339ad Mon Sep 17 00:00:00 2001 From: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Date: Sun, 16 Feb 2025 03:03:43 +0800 Subject: [PATCH 10/14] Update pythoncore.vcxproj --- PCbuild/pythoncore.vcxproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj index 5903af3e5747e6..a940b1eada3989 100644 --- a/PCbuild/pythoncore.vcxproj +++ b/PCbuild/pythoncore.vcxproj @@ -106,7 +106,7 @@ _Py_HAVE_ZLIB;%(PreprocessorDefinitions) _Py_JIT;%(PreprocessorDefinitions) _Py_TIER2=$(UseTIER2);%(PreprocessorDefinitions) - Py_TAIL_CALL_INTERP;%(PreprocessorDefinitions) + Py_TAIL_CALL_INTERP=1;%(PreprocessorDefinitions) version.lib;ws2_32.lib;pathcch.lib;bcrypt.lib;%(AdditionalDependencies) From 5f7ad24b4b6faaea30c29b35b26010ee983680c1 Mon Sep 17 00:00:00 2001 From: Ken Jin Date: Wed, 5 Mar 2025 17:14:50 +0800 Subject: [PATCH 11/14] Update .github/workflows/tail-call.yml Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> --- .github/workflows/tail-call.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tail-call.yml b/.github/workflows/tail-call.yml index a0b8671b2389a0..1bcb5c08704049 100644 --- a/.github/workflows/tail-call.yml +++ b/.github/workflows/tail-call.yml @@ -9,11 +9,11 @@ on: - '.github/workflows/tail-call.yml' push: paths: + - '.github/workflows/tail-call.yml' - 'Python/bytecodes.c' - 'Python/ceval.c' - 'Python/ceval_macros.h' - 'Python/generated_cases.c.h' - - '.github/workflows/tail-call.yml' workflow_dispatch: permissions: From 6d7b689b00be938044558a6359428355dd243691 Mon Sep 17 00:00:00 2001 From: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Date: Wed, 5 Mar 2025 17:44:28 +0800 Subject: [PATCH 12/14] Update tail-call.yml --- .github/workflows/tail-call.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tail-call.yml b/.github/workflows/tail-call.yml index 1bcb5c08704049..e5a98fadf28b8a 100644 --- a/.github/workflows/tail-call.yml +++ b/.github/workflows/tail-call.yml @@ -2,11 +2,11 @@ name: Tail calling interpreter on: pull_request: paths: + - '.github/workflows/tail-call.yml' - 'Python/bytecodes.c' - 'Python/ceval.c' - 'Python/ceval_macros.h' - 'Python/generated_cases.c.h' - - '.github/workflows/tail-call.yml' push: paths: - '.github/workflows/tail-call.yml' From aadfec45f1cd4eab165153027a2f60da74980c44 Mon Sep 17 00:00:00 2001 From: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Date: Thu, 6 Mar 2025 01:21:04 +0800 Subject: [PATCH 13/14] Address review --- .github/workflows/tail-call.yml | 12 ++++++------ PCbuild/build.bat | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/tail-call.yml b/.github/workflows/tail-call.yml index e5a98fadf28b8a..da6bd566e10977 100644 --- a/.github/workflows/tail-call.yml +++ b/.github/workflows/tail-call.yml @@ -2,7 +2,7 @@ name: Tail calling interpreter on: pull_request: paths: - - '.github/workflows/tail-call.yml' + - '.github/workflows/tail-call.yml' - 'Python/bytecodes.c' - 'Python/ceval.c' - 'Python/ceval_macros.h' @@ -45,7 +45,7 @@ jobs: - aarch64-unknown-linux-gnu/gcc - free-threading llvm: - - 19 + - 19.1.5 include: # - target: i686-pc-windows-msvc/msvc # architecture: Win32 @@ -83,9 +83,9 @@ jobs: if: runner.os == 'Windows' && matrix.architecture != 'ARM64' shell: cmd run: | - choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.5 + choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }} set PlatformToolset=clangcl - set LLVMToolsVersion=19.1.5 + set LLVMToolsVersion=${{ matrix.llvm }} set LLVMInstallDir=C:\Program Files\LLVM ./PCbuild/build.bat --tail-call-interp -d -p ${{ matrix.architecture }} ./PCbuild/rt.bat -d -p ${{ matrix.architecture }} -q --multiprocess 0 --timeout 4500 --verbose2 --verbose3 @@ -95,9 +95,9 @@ jobs: if: runner.os == 'Windows' && matrix.architecture == 'ARM64' shell: cmd run: | - choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.5 + choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }} set PlatformToolset=clangcl - set LLVMToolsVersion=19.1.5 + set LLVMToolsVersion=${{ matrix.llvm }} set LLVMInstallDir=C:\Program Files\LLVM ./PCbuild/build.bat --tail-call-interp -p ${{ matrix.architecture }} diff --git a/PCbuild/build.bat b/PCbuild/build.bat index 317bdaa3c9ff16..9fbc3e62ce75cc 100644 --- a/PCbuild/build.bat +++ b/PCbuild/build.bat @@ -40,7 +40,7 @@ echo. --experimental-jit Enable the experimental just-in-time compiler echo. --experimental-jit-off Ditto but off by default (PYTHON_JIT=1 enables). echo. --experimental-jit-interpreter Enable the experimental Tier 2 interpreter. echo. --pystats Enable PyStats collection. -echo. --tail-call-interp Enable tail-calling interpreter. +echo. --tail-call-interp Enable tail-calling interpreter (requires LLVM 19 or higher). echo. echo.Available flags to avoid building certain modules. echo.These flags have no effect if '-e' is not given: From 1d7c051ef391ed978771f61d3729745aaa41b3df Mon Sep 17 00:00:00 2001 From: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Date: Thu, 6 Mar 2025 01:24:09 +0800 Subject: [PATCH 14/14] Partially revert "Address review" We can't specify the minor version as the apt script doesn't recognize it. --- .github/workflows/tail-call.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tail-call.yml b/.github/workflows/tail-call.yml index da6bd566e10977..d1f3cd40f679e5 100644 --- a/.github/workflows/tail-call.yml +++ b/.github/workflows/tail-call.yml @@ -45,7 +45,7 @@ jobs: - aarch64-unknown-linux-gnu/gcc - free-threading llvm: - - 19.1.5 + - 19 include: # - target: i686-pc-windows-msvc/msvc # architecture: Win32 @@ -83,9 +83,9 @@ jobs: if: runner.os == 'Windows' && matrix.architecture != 'ARM64' shell: cmd run: | - choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }} + choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.5 set PlatformToolset=clangcl - set LLVMToolsVersion=${{ matrix.llvm }} + set LLVMToolsVersion=${{ matrix.llvm }}.1.5 set LLVMInstallDir=C:\Program Files\LLVM ./PCbuild/build.bat --tail-call-interp -d -p ${{ matrix.architecture }} ./PCbuild/rt.bat -d -p ${{ matrix.architecture }} -q --multiprocess 0 --timeout 4500 --verbose2 --verbose3 @@ -95,9 +95,9 @@ jobs: if: runner.os == 'Windows' && matrix.architecture == 'ARM64' shell: cmd run: | - choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }} + choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.5 set PlatformToolset=clangcl - set LLVMToolsVersion=${{ matrix.llvm }} + set LLVMToolsVersion=${{ matrix.llvm }}.1.5 set LLVMInstallDir=C:\Program Files\LLVM ./PCbuild/build.bat --tail-call-interp -p ${{ matrix.architecture }}