| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent da4a13a commit 587306c
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,7 +1,7 @@ | |||
| 1 | 1 | name: JIT | |
| 2 | 2 | on: | |
| 3 | 3 | pull_request: | |
| 4 | - paths: | ||
| 4 | + paths: &paths | ||
| 5 | 5 | - '**jit**' | |
| 6 | 6 | - 'Python/bytecodes.c' | |
| 7 | 7 | - 'Python/optimizer*.c' | |
@@ -12,16 +12,7 @@ on: | |||
| 12 | 12 | - '!**/*.md' | |
| 13 | 13 | - '!**/*.ini' | |
| 14 | 14 | push: | |
| 15 | - paths: | ||
| 16 | - - '**jit**' | ||
| 17 | - - 'Python/bytecodes.c' | ||
| 18 | - - 'Python/optimizer*.c' | ||
| 19 | - - 'Python/executor_cases.c.h' | ||
| 20 | - - 'Python/optimizer_cases.c.h' | ||
| 21 | - - '**_testinternalcapi**' | ||
| 22 | - - '!Python/perf_jit_trampoline.c' | ||
| 23 | - - '!**/*.md' | ||
| 24 | - - '!**/*.ini' | ||
| 15 | + paths: *paths | ||
| 25 | 16 | workflow_dispatch: | |
| 26 | 17 | ||
| 27 | 18 | permissions: | |
@@ -33,12 +24,13 @@ concurrency: | |||
| 33 | 24 | ||
| 34 | 25 | env: | |
| 35 | 26 | FORCE_COLOR: 1 | |
| 27 | + LLVM_VERSION: 21 | ||
| 36 | 28 | ||
| 37 | 29 | jobs: | |
| 38 | 30 | interpreter: | |
| 39 | 31 | name: Interpreter (Debug) | |
| 40 | 32 | runs-on: ubuntu-24.04 | |
| 41 | - timeout-minutes: 90 | ||
| 33 | + timeout-minutes: 60 | ||
| 42 | 34 | steps: | |
| 43 | 35 | - uses: actions/checkout@v6 | |
| 44 | 36 | with: | |
@@ -50,27 +42,22 @@ jobs: | |||
| 50 | 42 | - name: Test tier two interpreter | |
| 51 | 43 | run: | | |
| 52 | 44 | ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 | |
| 53 | - jit: | ||
| 45 | + | ||
| 46 | + windows: | ||
| 54 | 47 | name: ${{ matrix.target }} (${{ matrix.debug && 'Debug' || 'Release' }}) | |
| 55 | - needs: interpreter | ||
| 48 | + | ||
| 56 | 49 | runs-on: ${{ matrix.runner }} | |
| 57 | - timeout-minutes: 90 | ||
| 50 | + timeout-minutes: 60 | ||
| 58 | 51 | strategy: | |
| 59 | 52 | fail-fast: false | |
| 60 | 53 | matrix: | |
| 61 | 54 | target: | |
| 62 | 55 | - i686-pc-windows-msvc/msvc | |
| 63 | 56 | - x86_64-pc-windows-msvc/msvc | |
| 64 | 57 | - aarch64-pc-windows-msvc/msvc | |
| 65 | - - x86_64-apple-darwin/clang | ||
| 66 | - - aarch64-apple-darwin/clang | ||
| 67 | - - x86_64-unknown-linux-gnu/gcc | ||
| 68 | - - aarch64-unknown-linux-gnu/gcc | ||
| 69 | 58 | debug: | |
| 70 | 59 | - true | |
| 71 | 60 | - false | |
| 72 | - llvm: | ||
| 73 | - - 21 | ||
| 74 | 61 | include: | |
| 75 | 62 | - target: i686-pc-windows-msvc/msvc | |
| 76 | 63 | architecture: Win32 | |
@@ -81,131 +68,137 @@ jobs: | |||
| 81 | 68 | - target: aarch64-pc-windows-msvc/msvc | |
| 82 | 69 | architecture: ARM64 | |
| 83 | 70 | runner: windows-11-arm | |
| 84 | - - target: x86_64-apple-darwin/clang | ||
| 85 | - architecture: x86_64 | ||
| 86 | - runner: macos-15-intel | ||
| 87 | - - target: aarch64-apple-darwin/clang | ||
| 88 | - architecture: aarch64 | ||
| 89 | - runner: macos-14 | ||
| 90 | - - target: x86_64-unknown-linux-gnu/gcc | ||
| 91 | - architecture: x86_64 | ||
| 92 | - runner: ubuntu-24.04 | ||
| 93 | - - target: aarch64-unknown-linux-gnu/gcc | ||
| 94 | - architecture: aarch64 | ||
| 95 | - runner: ubuntu-24.04-arm | ||
| 96 | 71 | steps: | |
| 97 | 72 | - uses: actions/checkout@v6 | |
| 98 | 73 | with: | |
| 99 | 74 | persist-credentials: false | |
| 100 | 75 | - uses: actions/setup-python@v6 | |
| 101 | 76 | with: | |
| 102 | 77 | python-version: '3.11' | |
| 103 | - | ||
| 104 | 78 | # PCbuild downloads LLVM automatically: | |
| 105 | - - name: Windows | ||
| 106 | - if: runner.os == 'Windows' | ||
| 79 | + - name: Build | ||
| 107 | 80 | run: | | |
| 108 | 81 | ./PCbuild/build.bat --experimental-jit ${{ matrix.debug && '-d' || '' }} -p ${{ matrix.architecture }} | |
| 109 | - ./PCbuild/rt.bat ${{ matrix.debug && '-d' || '' }} -p ${{ matrix.architecture }} -q --multiprocess 0 --timeout 4500 --verbose2 --verbose3 | ||
| 110 | - | ||
| 111 | - - name: macOS | ||
| 112 | - if: runner.os == 'macOS' | ||
| 82 | + - name: Test | ||
| 113 | 83 | run: | | |
| 114 | - brew update | ||
| 115 | - brew install llvm@${{ matrix.llvm }} | ||
| 116 | - export SDKROOT="$(xcrun --show-sdk-path)" | ||
| 117 | - # Set MACOSX_DEPLOYMENT_TARGET and -Werror=unguarded-availability to | ||
| 118 | - # make sure we don't break downstream distributors (like uv): | ||
| 119 | - export CFLAGS_JIT='-Werror=unguarded-availability' | ||
| 120 | - export MACOSX_DEPLOYMENT_TARGET=10.15 | ||
| 121 | - ./configure --enable-experimental-jit --enable-universalsdk --with-universal-archs=universal2 ${{ matrix.debug && '--with-pydebug' || '' }} | ||
| 122 | - make all --jobs 4 | ||
| 123 | - ./python.exe -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 | ||
| 84 | + ./PCbuild/rt.bat ${{ matrix.debug && '-d' || '' }} -p ${{ matrix.architecture }} -q --multiprocess 0 --timeout 4500 --verbose2 --verbose3 | ||
| 124 | 85 | ||
| 125 | - - name: Linux | ||
| 126 | - if: runner.os == 'Linux' | ||
| 127 | - run: | | ||
| 128 | - sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }} | ||
| 129 | - export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH" | ||
| 130 | - ./configure --enable-experimental-jit ${{ matrix.debug && '--with-pydebug' || '' }} | ||
| 131 | - make all --jobs 4 | ||
| 132 | - ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 | ||
| 86 | + macos: | ||
| 87 | + name: ${{ matrix.target }} (${{ matrix.debug && 'Debug' || 'Release' }}) | ||
| 133 | 88 | ||
| 134 | - jit-with-disabled-gil: | ||
| 135 | - name: Free-Threaded (Debug) | ||
| 136 | - needs: interpreter | ||
| 137 | - runs-on: ubuntu-24.04 | ||
| 138 | - timeout-minutes: 90 | ||
| 89 | + runs-on: ${{ matrix.runner }} | ||
| 90 | + timeout-minutes: 60 | ||
| 139 | 91 | strategy: | |
| 140 | 92 | fail-fast: false | |
| 141 | 93 | matrix: | |
| 142 | - llvm: | ||
| 143 | - - 21 | ||
| 94 | + target: | ||
| 95 | + - x86_64-apple-darwin/clang | ||
| 96 | + - aarch64-apple-darwin/clang | ||
| 97 | + debug: | ||
| 98 | + - true | ||
| 99 | + - false | ||
| 100 | + include: | ||
| 101 | + - target: x86_64-apple-darwin/clang | ||
| 102 | + runner: macos-15-intel | ||
| 103 | + - target: aarch64-apple-darwin/clang | ||
| 104 | + runner: macos-14 | ||
| 144 | 105 | steps: | |
| 145 | 106 | - uses: actions/checkout@v6 | |
| 146 | 107 | with: | |
| 147 | 108 | persist-credentials: false | |
| 148 | 109 | - uses: actions/setup-python@v6 | |
| 149 | 110 | with: | |
| 150 | 111 | python-version: '3.11' | |
| 151 | - - name: Build with JIT enabled and GIL disabled | ||
| 112 | + - name: Install LLVM | ||
| 113 | + run: | | ||
| 114 | + brew update | ||
| 115 | + brew install llvm@${{ env.LLVM_VERSION }} | ||
| 116 | + - name: Build | ||
| 152 | 117 | run: | | |
| 153 | - sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }} | ||
| 154 | - export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH" | ||
| 155 | - ./configure --enable-experimental-jit --with-pydebug --disable-gil | ||
| 118 | + export SDKROOT="$(xcrun --show-sdk-path)" | ||
| 119 | + # Set MACOSX_DEPLOYMENT_TARGET and -Werror=unguarded-availability to | ||
| 120 | + # make sure we don't break downstream distributors (like uv): | ||
| 121 | + export CFLAGS_JIT='-Werror=unguarded-availability' | ||
| 122 | + export MACOSX_DEPLOYMENT_TARGET=10.15 | ||
| 123 | + ./configure --enable-experimental-jit --enable-universalsdk --with-universal-archs=universal2 ${{ matrix.debug && '--with-pydebug' || '' }} | ||
| 156 | 124 | make all --jobs 4 | |
| 157 | - - name: Run tests | ||
| 125 | + - name: Test | ||
| 158 | 126 | run: | | |
| 159 | - ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 | ||
| 160 | - continue-on-error: true | ||
| 127 | + ./python.exe -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 | ||
| 161 | 128 | ||
| 162 | - no-opt-jit: | ||
| 163 | - name: JIT without optimizations (Debug) | ||
| 164 | - needs: interpreter | ||
| 165 | - runs-on: ubuntu-24.04 | ||
| 166 | - timeout-minutes: 90 | ||
| 129 | + linux: | ||
| 130 | + name: ${{ matrix.target }} (${{ matrix.debug && 'Debug' || 'Release' }}) | ||
| 131 | + | ||
| 132 | + runs-on: ${{ matrix.runner }} | ||
| 133 | + timeout-minutes: 60 | ||
| 167 | 134 | strategy: | |
| 168 | 135 | fail-fast: false | |
| 169 | 136 | matrix: | |
| 170 | - llvm: | ||
| 171 | - - 21 | ||
| 137 | + target: | ||
| 138 | + - x86_64-unknown-linux-gnu/gcc | ||
| 139 | + - aarch64-unknown-linux-gnu/gcc | ||
| 140 | + debug: | ||
| 141 | + - true | ||
| 142 | + - false | ||
| 143 | + include: | ||
| 144 | + - target: x86_64-unknown-linux-gnu/gcc | ||
| 145 | + runner: ubuntu-24.04 | ||
| 146 | + - target: aarch64-unknown-linux-gnu/gcc | ||
| 147 | + runner: ubuntu-24.04-arm | ||
| 172 | 148 | steps: | |
| 173 | 149 | - uses: actions/checkout@v6 | |
| 174 | 150 | with: | |
| 175 | 151 | persist-credentials: false | |
| 176 | 152 | - uses: actions/setup-python@v6 | |
| 177 | 153 | with: | |
| 178 | 154 | python-version: '3.11' | |
| 179 | - - name: Build with JIT | ||
| 155 | + - name: Build | ||
| 180 | 156 | run: | | |
| 181 | - sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }} | ||
| 182 | - export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH" | ||
| 183 | - ./configure --enable-experimental-jit --with-pydebug | ||
| 157 | + sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ env.LLVM_VERSION }} | ||
| 158 | + export PATH="$(llvm-config-${{ env.LLVM_VERSION }} --bindir):$PATH" | ||
| 159 | + ./configure --enable-experimental-jit ${{ matrix.debug && '--with-pydebug' || '' }} | ||
| 184 | 160 | make all --jobs 4 | |
| 185 | - - name: Run tests without optimizations | ||
| 161 | + - name: Test | ||
| 186 | 162 | run: | | |
| 187 | - PYTHON_UOPS_OPTIMIZE=0 ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 | ||
| 163 | + ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 | ||
| 164 | + | ||
| 165 | + linux-extras: | ||
| 166 | + name: ${{ matrix.name }} | ||
| 188 | 167 | ||
| 189 | - tail-call-jit: | ||
| 190 | - name: JIT with tail calling interpreter | ||
| 191 | - needs: interpreter | ||
| 192 | 168 | runs-on: ubuntu-24.04 | |
| 193 | - timeout-minutes: 90 | ||
| 169 | + timeout-minutes: 60 | ||
| 194 | 170 | strategy: | |
| 195 | 171 | fail-fast: false | |
| 196 | 172 | matrix: | |
| 197 | - llvm: | ||
| 198 | - - 21 | ||
| 173 | + include: | ||
| 174 | + - name: Free-Threaded (Debug) | ||
| 175 | + configure_flags: --enable-experimental-jit --with-pydebug --disable-gil | ||
| 176 | + continue_on_error: true | ||
| 177 | + - name: JIT without optimizations (Debug) | ||
| 178 | + configure_flags: --enable-experimental-jit --with-pydebug | ||
| 179 | + test_env: "PYTHON_UOPS_OPTIMIZE=0" | ||
| 180 | + - name: JIT with tail calling interpreter | ||
| 181 | + configure_flags: --enable-experimental-jit --with-tail-call-interp --with-pydebug | ||
| 182 | + use_clang: true | ||
| 183 | + run_tests: false | ||
| 199 | 184 | steps: | |
| 200 | 185 | - uses: actions/checkout@v6 | |
| 201 | 186 | with: | |
| 202 | 187 | persist-credentials: false | |
| 203 | 188 | - uses: actions/setup-python@v6 | |
| 204 | 189 | with: | |
| 205 | 190 | python-version: '3.11' | |
| 206 | - - name: Build with JIT and tailcall | ||
| 191 | + - name: Build | ||
| 207 | 192 | run: | | |
| 208 | - sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ matrix.llvm }} | ||
| 209 | - export PATH="$(llvm-config-${{ matrix.llvm }} --bindir):$PATH" | ||
| 210 | - CC=clang-${{ matrix.llvm }} ./configure --enable-experimental-jit --with-tail-call-interp --with-pydebug | ||
| 193 | + sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{ env.LLVM_VERSION }} | ||
| 194 | + export PATH="$(llvm-config-${{ env.LLVM_VERSION }} --bindir):$PATH" | ||
| 195 | + if [ "${{ matrix.use_clang }}" = "true" ]; then | ||
| 196 | + export CC=clang-${{ env.LLVM_VERSION }} | ||
| 197 | + fi | ||
| 198 | + ./configure ${{ matrix.configure_flags }} | ||
| 211 | 199 | make all --jobs 4 | |
| 200 | + - name: Test | ||
| 201 | + if: matrix.run_tests != false | ||
| 202 | + run: | | ||
| 203 | + ${{ matrix.test_env }} ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 | ||
| 204 | + continue-on-error: ${{ matrix.continue_on_error }} | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments