]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
no-issue: Add free-threading build for TC dispatch (gh-130083)
authorDonghee Na <donghee.na@python.org>
Thu, 13 Feb 2025 15:25:40 +0000 (00:25 +0900)
committerGitHub <noreply@github.com>
Thu, 13 Feb 2025 15:25:40 +0000 (00:25 +0900)
no-issue: Add free-threading build for TCO dispatch

.github/workflows/tail-call.yml

index 4c2516c517b3a9dfb3ee9e44ec1785560509e6f8..119c60a15732bfe500171edf9e721aa9d247cd9a 100644 (file)
@@ -41,6 +41,7 @@ jobs:
           - aarch64-apple-darwin/clang
           - x86_64-unknown-linux-gnu/gcc
           - aarch64-unknown-linux-gnu/gcc
+          - free-threading
         llvm:
           - 19
         include:
@@ -65,6 +66,9 @@ jobs:
           - target: aarch64-unknown-linux-gnu/gcc
             architecture: aarch64
             runner: ubuntu-22.04-arm
+          - target: free-threading
+            architecture: x86_64
+            runner: ubuntu-24.04
     steps:
       - uses: actions/checkout@v4
         with:
@@ -105,7 +109,7 @@ jobs:
           ./python.exe -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3
 
       - name: Native Linux (release)
-        if: runner.os == 'Linux'
+        if: runner.os == 'Linux' && matrix.target != 'free-threading'
         run: |
           sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }}
           export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH"
@@ -113,3 +117,12 @@ jobs:
           make all --jobs 4
           ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3
 
+      - name: Native Linux with free-threading (release)
+        if: matrix.target == 'free-threading'
+        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 --disable-gil
+          make all --jobs 4
+          ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3
+