1212 - ' Python/optimizer*.c'
1313 workflow_dispatch :
1414
15+ permissions :
16+ contents : read
17+
1518concurrency :
1619 group : ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
1720 cancel-in-progress : true
2023 jit :
2124 name : ${{ matrix.target }} (${{ matrix.debug && 'Debug' || 'Release' }})
2225 runs-on : ${{ matrix.runner }}
23- timeout-minutes : 75
26+ timeout-minutes : 90
2427 strategy :
2528 fail-fast : false
2629 matrix :
3841 - true
3942 - false
4043 llvm :
41- - 16
44+ - 18
4245 include :
4346 - target : i686-pc-windows-msvc/msvc
4447 architecture : Win32
@@ -72,14 +75,10 @@ jobs:
7275 architecture : aarch64
7376 runner : ubuntu-latest
7477 compiler : gcc
75- # These fail because of emulation, not because of the JIT:
76- exclude : test_unix_events test_init test_process_pool test_shutdown test_multiprocessing_fork test_cmd_line test_faulthandler test_os test_perf_profiler test_posix test_signal test_socket test_subprocess test_threading test_venv test_external_inspection
7778 - target : aarch64-unknown-linux-gnu/clang
7879 architecture : aarch64
7980 runner : ubuntu-latest
8081 compiler : clang
81- # These fail because of emulation, not because of the JIT:
82- exclude : test_unix_events test_init test_process_pool test_shutdown test_multiprocessing_fork test_cmd_line test_faulthandler test_os test_perf_profiler test_posix test_signal test_socket test_subprocess test_threading test_venv test_external_inspection
8382 env :
8483 CC : ${{ matrix.compiler }}
8584 steps :
@@ -91,37 +90,43 @@ jobs:
9190 - name : Native Windows
9291 if : runner.os == 'Windows' && matrix.architecture != 'ARM64'
9392 run : |
93+ choco upgrade llvm -y
9494 choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}
9595 ./PCbuild/build.bat --experimental-jit ${{ matrix.debug && '-d' || '--pgo' }} -p ${{ matrix.architecture }}
96- ./PCbuild/rt.bat ${{ matrix.debug && '-d' }} -p ${{ matrix.architecture }} -q --exclude ${{ matrix.exclude }} --multiprocess 0 --timeout 4500 --verbose2 --verbose3
96+ ./PCbuild/rt.bat ${{ matrix.debug && '-d' || '' }} -p ${{ matrix.architecture }} -q --multiprocess 0 --timeout 4500 --verbose2 --verbose3
9797
9898 # No PGO or tests (yet):
9999 - name : Emulated Windows
100100 if : runner.os == 'Windows' && matrix.architecture == 'ARM64'
101101 run : |
102+ choco upgrade llvm -y
102103 choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}
103104 ./PCbuild/build.bat --experimental-jit ${{ matrix.debug && '-d' || '' }} -p ${{ matrix.architecture }}
104105
105106 - name : Native macOS
106107 if : runner.os == 'macOS'
107108 run : |
109+ brew update
108110 brew install llvm@${{ matrix.llvm }}
109111 SDKROOT="$(xcrun --show-sdk-path)" \
110112 ./configure --enable-experimental-jit ${{ matrix.debug && '--with-pydebug' || '--enable-optimizations --with-lto' }}
111113 make all --jobs 4
112- ./python.exe -m test --exclude ${{ matrix.exclude }} -- multiprocess 0 --timeout 4500 --verbose2 --verbose3
114+ ./python.exe -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3
113115
116+ # --with-lto has been removed temporarily as a result of an open issue in LLVM 18 (see https://github.com/llvm/llvm-project/issues/87553)
114117 - name : Native Linux
115118 if : runner.os == 'Linux' && matrix.architecture == 'x86_64'
116119 run : |
117120 sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }}
118121 export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH"
119- ./configure --enable-experimental-jit ${{ matrix.debug && '--with-pydebug' || '--enable-optimizations --with-lto ' }}
122+ ./configure --enable-experimental-jit ${{ matrix.debug && '--with-pydebug' || '--enable-optimizations' }}
120123 make all --jobs 4
121- ./python -m test --exclude ${{ matrix.exclude }} -- multiprocess 0 --timeout 4500 --verbose2 --verbose3
124+ ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3
122125
126+ # --with-lto has been removed temporarily as a result of an open issue in LLVM 18 (see https://github.com/llvm/llvm-project/issues/87553)
123127 - name : Emulated Linux
124128 if : runner.os == 'Linux' && matrix.architecture != 'x86_64'
129+ # The --ignorefile on ./python -m test is used to exclude tests known to fail when running on an emulated Linux.
125130 run : |
126131 sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }}
127132 export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH"
@@ -136,6 +141,6 @@ jobs:
136141 CC="${{ matrix.compiler == 'clang' && 'clang --target=$HOST' || '$HOST-gcc' }}" \
137142 CPP="$CC --preprocess" \
138143 HOSTRUNNER=qemu-${{ matrix.architecture }} \
139- ./configure --enable-experimental-jit ${{ matrix.debug && '--with-pydebug' || '--enable-optimizations --with-lto ' }} --build=x86_64-linux-gnu --host="$HOST" --with-build-python=../build/bin/python3 --with-pkg-config=no ac_cv_buggy_getaddrinfo=no ac_cv_file__dev_ptc=no ac_cv_file__dev_ptmx=yes
144+ ./configure --enable-experimental-jit ${{ matrix.debug && '--with-pydebug' || '--enable-optimizations ' }} --build=x86_64-linux-gnu --host="$HOST" --with-build-python=../build/bin/python3 --with-pkg-config=no ac_cv_buggy_getaddrinfo=no ac_cv_file__dev_ptc=no ac_cv_file__dev_ptmx=yes
140145 make all --jobs 4
141- ./python -m test --exclude ${{ matrix.exclude }} --multiprocess 0 --timeout 4500 --verbose2 --verbose3
146+ ./python -m test --ignorefile=Tools/jit/ignore-tests-emulated-linux.txt --multiprocess 0 --timeout 4500 --verbose2 --verbose3
0 commit comments