@@ -2,12 +2,14 @@ name: Tail calling interpreter
22on :
33 pull_request :
44 paths :
5+ - ' .github/workflows/tail-call.yml'
56 - ' Python/bytecodes.c'
67 - ' Python/ceval.c'
78 - ' Python/ceval_macros.h'
89 - ' Python/generated_cases.c.h'
910 push :
1011 paths :
12+ - ' .github/workflows/tail-call.yml'
1113 - ' Python/bytecodes.c'
1214 - ' Python/ceval.c'
1315 - ' Python/ceval_macros.h'
@@ -35,22 +37,22 @@ jobs:
3537 target :
3638# Un-comment as we add support for more platforms for tail-calling interpreters.
3739# - i686-pc-windows-msvc/msvc
38- # - x86_64-pc-windows-msvc/msvc
40+ - x86_64-pc-windows-msvc/msvc
3941# - aarch64-pc-windows-msvc/msvc
4042 - x86_64-apple-darwin/clang
4143 - aarch64-apple-darwin/clang
4244 - x86_64-unknown-linux-gnu/gcc
4345 - aarch64-unknown-linux-gnu/gcc
4446 - free-threading
4547 llvm :
46- - 19
48+ - 20
4749 include :
4850# - target: i686-pc-windows-msvc/msvc
4951# architecture: Win32
5052# runner: windows-latest
51- # - target: x86_64-pc-windows-msvc/msvc
52- # architecture: x64
53- # runner: windows-latest
53+ - target : x86_64-pc-windows-msvc/msvc
54+ architecture : x64
55+ runner : windows-latest
5456# - target: aarch64-pc-windows-msvc/msvc
5557# architecture: ARM64
5658# runner: windows-latest
@@ -79,41 +81,51 @@ jobs:
7981
8082 - name : Native Windows (debug)
8183 if : runner.os == 'Windows' && matrix.architecture != 'ARM64'
84+ shell : cmd
8285 run : |
8386 choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.0
84- ./PCbuild/build.bat --tail-call-interp -d -p ${{ matrix.architecture }}
85- ./PCbuild/rt.bat -d -p ${{ matrix.architecture }} -q --multiprocess 0 --timeout 4500 --verbose2 --verbose3
87+ set PlatformToolset=clangcl
88+ set LLVMToolsVersion=${{ matrix.llvm }}.1.0
89+ set LLVMInstallDir=C:\Program Files\LLVM
90+ call ./PCbuild/build.bat --tail-call-interp -d -p ${{ matrix.architecture }}
91+ call ./PCbuild/rt.bat -d -p ${{ matrix.architecture }} -q --multiprocess 0 --timeout 4500 --verbose2 --verbose3
8692
8793 # No tests (yet):
8894 - name : Emulated Windows (release)
8995 if : runner.os == 'Windows' && matrix.architecture == 'ARM64'
96+ shell : cmd
9097 run : |
9198 choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.0
99+ set PlatformToolset=clangcl
100+ set LLVMToolsVersion=${{ matrix.llvm }}.1.0
101+ set LLVMInstallDir=C:\Program Files\LLVM
92102 ./PCbuild/build.bat --tail-call-interp -p ${{ matrix.architecture }}
93103
94104 # The `find` line is required as a result of https://github.com/actions/runner-images/issues/9966.
95105 # This is a bug in the macOS runner image where the pre-installed Python is installed in the same
96106 # directory as the Homebrew Python, which causes the build to fail for macos-13. This line removes
97107 # the symlink to the pre-installed Python so that the Homebrew Python is used instead.
98- - name : Native macOS (debug)
108+ # Note: when a new LLVM is released, the homebrew installation directory changes, so the builds will fail.
109+ # We either need to upgrade LLVM or change the directory being pointed to.
110+ - name : Native macOS (release)
99111 if : runner.os == 'macOS'
100112 run : |
101113 brew update
102114 find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete
103115 brew install llvm@${{ matrix.llvm }}
104116 export SDKROOT="$(xcrun --show-sdk-path)"
105- export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
106117 export PATH="/usr/local/opt/llvm/bin:$PATH"
107- CC=clang-19 ./configure --with-tail-call-interp --with-pydebug
118+ export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
119+ CC=clang-20 ./configure --with-tail-call-interp
108120 make all --jobs 4
109121 ./python.exe -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3
110122
111- - name : Native Linux (release )
123+ - name : Native Linux (debug )
112124 if : runner.os == 'Linux' && matrix.target != 'free-threading'
113125 run : |
114126 sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }}
115127 export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH"
116- CC=clang-19 ./configure --with-tail-call-interp
128+ CC=clang-20 ./configure --with-tail-call-interp --with-pydebug
117129 make all --jobs 4
118130 ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3
119131
@@ -122,7 +134,7 @@ jobs:
122134 run : |
123135 sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }}
124136 export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH"
125- CC=clang-19 ./configure --with-tail-call-interp --disable-gil
137+ CC=clang-20 ./configure --with-tail-call-interp --disable-gil
126138 make all --jobs 4
127139 ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3
128140
0 commit comments