Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 34k
Enable native AArch64 Ubuntu CI jobs for the JIT#127332
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uh oh!
There was an error while loading. Please reload this page.
Changes from all commits
356cf6b4be422e51fa3b5fc2b11a46c1392ff792723b0f67ecd5b7ffb8770f4c5dc6b0b025bd46de3f078d567ed07540bfe9aa12095897379024da13fdda92359926c5648245d3da915765fc2aFile filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,6 +1,9 @@ | ||
| name: JIT | ||
| on: | ||
| pull_request: | ||
| branches: | ||
| - 'main' | ||
| - '3.*' | ||
| paths: | ||
| - '**jit**' | ||
| - 'Python/bytecodes.c' | ||
| @@ -9,6 +12,9 @@ on: | ||
| - '!**/*.md' | ||
| - '!**/*.ini' | ||
| push: | ||
| branches: | ||
| - 'main' | ||
| - '3.*' | ||
| paths: | ||
| - '**jit**' | ||
| - 'Python/bytecodes.c' | ||
| @@ -25,10 +31,13 @@ concurrency: | ||
| group: ${{github.workflow }}-${{github.head_ref || github.run_id }} | ||
| cancel-in-progress: true | ||
| env: | ||
| llvm: 19 | ||
| jobs: | ||
| interpreter: | ||
| name: Interpreter (Debug) | ||
| runs-on: ubuntu-22.04 | ||
| runs-on: ubuntu-24.04 | ||
| timeout-minutes: 90 | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| @@ -39,129 +48,122 @@ jobs: | ||
| - name: Test tier two interpreter | ||
| run: | | ||
| ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 | ||
| jit: | ||
| name: ${{matrix.target }} (${{matrix.debug && 'Debug' || 'Release'}}) | ||
| jit-windows: | ||
| name: Windows (${{matrix.arch }}, ${{matrix.debug && 'Debug' || 'Release'}}) | ||
| needs: interpreter | ||
| runs-on: ${{matrix.runner }} | ||
| runs-on: windows-latest | ||
| timeout-minutes: 90 | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| target: | ||
| - i686-pc-windows-msvc/msvc | ||
| - x86_64-pc-windows-msvc/msvc | ||
| - aarch64-pc-windows-msvc/msvc | ||
| - x86_64-apple-darwin/clang | ||
| - aarch64-apple-darwin/clang | ||
| - x86_64-unknown-linux-gnu/gcc | ||
| - aarch64-unknown-linux-gnu/gcc | ||
| arch: | ||
| - x64 | ||
| - Win32 | ||
| - ARM64 | ||
| debug: | ||
| - true | ||
| - false | ||
| llvm: | ||
| - 19 | ||
| include: | ||
| - target: i686-pc-windows-msvc/msvc | ||
| architecture: Win32 | ||
| 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 | ||
| - target: x86_64-apple-darwin/clang | ||
| architecture: x86_64 | ||
| runner: macos-13 | ||
| - target: aarch64-apple-darwin/clang | ||
| architecture: aarch64 | ||
| runner: macos-14 | ||
| - target: x86_64-unknown-linux-gnu/gcc | ||
| architecture: x86_64 | ||
| runner: ubuntu-22.04 | ||
| - target: aarch64-unknown-linux-gnu/gcc | ||
| architecture: aarch64 | ||
| runner: ubuntu-22.04 | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: actions/setup-python@v5 | ||
| with: | ||
| python-version: '3.11' | ||
| - name: Native Windows | ||
| if: runner.os == 'Windows' && matrix.architecture != 'ARM64' | ||
| if: matrix.arch != 'ARM64' | ||
| run: | | ||
| choco install llvm --allow-downgrade --no-progress --version ${{matrix.llvm }}.1.0 | ||
| ./PCbuild/build.bat --experimental-jit ${{matrix.debug && '-d' || ''}} -p ${{matrix.architecture }} | ||
| ./PCbuild/rt.bat ${{matrix.debug && '-d' || ''}} -p ${{matrix.architecture }} -q --multiprocess 0 --timeout 4500 --verbose2 --verbose3 | ||
| choco install llvm --allow-downgrade --no-progress --version ${{env.llvm }}.1.0 | ||
| ./PCbuild/build.bat --experimental-jit ${{matrix.debug && '-d' || ''}} -p ${{matrix.arch }} | ||
| ./PCbuild/rt.bat ${{matrix.debug && '-d' || ''}} -p ${{matrix.arch }} -q --multiprocess 0 --timeout 4500 --verbose2 --verbose3 | ||
| # No tests (yet): | ||
| - name: Emulated Windows | ||
| if: runner.os == 'Windows' && matrix.architecture == 'ARM64' | ||
| if: matrix.arch == 'ARM64' | ||
| run: | | ||
| choco install llvm --allow-downgrade --no-progress --version ${{matrix.llvm }}.1.0 | ||
| ./PCbuild/build.bat --experimental-jit ${{matrix.debug && '-d' || ''}} -p ${{matrix.architecture }} | ||
| choco install llvm --allow-downgrade --no-progress --version ${{env.llvm }}.1.0 | ||
| ./PCbuild/build.bat --experimental-jit ${{matrix.debug && '-d' || ''}} -p ${{matrix.arch }} | ||
| jit-mac: | ||
| name: macOS (${{matrix.os == 'macos-14' && 'aarch64' || 'x86_64'}}, ${{matrix.debug && 'Debug' || 'Release'}}) | ||
| needs: interpreter | ||
| runs-on: ${{matrix.os }} | ||
| timeout-minutes: 90 | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| # macos-14 are M1, macos-13 are default GHA Intel. | ||
| os: | ||
| - macos-14 | ||
| - macos-13 | ||
| debug: | ||
| - true | ||
| - false | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: actions/setup-python@v5 | ||
| with: | ||
| python-version: '3.11' | ||
| # 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 | ||
| # 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 | ||
| if: runner.os == 'macOS' | ||
| - name: ${{runner.os }} (${{runner.arch }}) | ||
savannahostrowski marked this conversation as resolved. Show resolvedHide resolvedUh oh!There was an error while loading. Please reload this page. | ||
| run: | | ||
| brew update | ||
| find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete | ||
| brew install llvm@${{matrix.llvm }} | ||
| brew install llvm@${{env.llvm }} | ||
| export SDKROOT="$(xcrun --show-sdk-path)" | ||
| ./configure --enable-experimental-jit ${{matrix.debug && '--with-pydebug' || ''}} | ||
| make all --jobs 4 | ||
| ./python.exe -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 | ||
| - name: Native Linux | ||
| if: runner.os == 'Linux' && matrix.architecture == 'x86_64' | ||
| jit-ubuntu: | ||
| name: Ubuntu (${{matrix.os == 'ubuntu-24.04-aarch64' && 'aarch64' || 'x86_64'}}, ${{matrix.debug && 'Debug' || 'Release'}}) | ||
| needs: interpreter | ||
| runs-on: ${{matrix.os }} | ||
| timeout-minutes: 90 | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| os: | ||
| - ubuntu-24.04 | ||
| - ubuntu-24.04-aarch64 | ||
| debug: | ||
| - true | ||
| - false | ||
| is-fork: # only used for the exclusion trick | ||
| - ${{github.repository_owner != 'python'}} | ||
| exclude: | ||
| - os: ubuntu-24.04-aarch64 | ||
| is-fork: true | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: actions/setup-python@v5 | ||
| with: | ||
| python-version: '3.11' | ||
| - name: ${{runner.os }} (${{runner.arch }}) | ||
| run: | | ||
| sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{matrix.llvm }} | ||
| export PATH="$(llvm-config-${{matrix.llvm }} --bindir):$PATH" | ||
| sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{env.llvm }} | ||
| export PATH="$(llvm-config-${{env.llvm }} --bindir):$PATH" | ||
savannahostrowski marked this conversation as resolved. Show resolvedHide resolvedUh oh!There was an error while loading. Please reload this page. | ||
| ./configure --enable-experimental-jit ${{matrix.debug && '--with-pydebug' || ''}} | ||
| make all --jobs 4 | ||
| ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 | ||
| - name: Emulated Linux | ||
savannahostrowski marked this conversation as resolved. Show resolvedHide resolvedUh oh!There was an error while loading. Please reload this page. | ||
| if: runner.os == 'Linux' && matrix.architecture != 'x86_64' | ||
| # The --ignorefile on ./python -m test is used to exclude tests known to fail when running on an emulated 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" | ||
| ./configure --prefix="$(pwd)/../build" | ||
| make install --jobs 4 | ||
| make clean --jobs 4 | ||
| export HOST=${{matrix.architecture }}-linux-gnu | ||
| sudo apt install --yes "gcc-$HOST" qemu-user | ||
| export QEMU_LD_PREFIX="/usr/$HOST" | ||
| CC="$HOST-gcc" \ | ||
| CPP="$HOST-gcc --preprocess" \ | ||
| HOSTRUNNER=qemu-${{matrix.architecture }} \ | ||
| ./configure --enable-experimental-jit ${{matrix.debug && '--with-pydebug' || ''}} --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 | ||
| make all --jobs 4 | ||
| ./python -m test --ignorefile=Tools/jit/ignore-tests-emulated-linux.txt --multiprocess 0 --timeout 4500 --verbose2 --verbose3 | ||
| jit-with-disabled-gil: | ||
| name: Free-Threaded (Debug) | ||
| needs: interpreter | ||
| runs-on: ubuntu-22.04 | ||
| strategy: | ||
| matrix: | ||
| llvm: | ||
| - 19 | ||
| runs-on: ubuntu-24.04 | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: actions/setup-python@v5 | ||
| with: | ||
| python-version: '3.11' | ||
| - name: Build with JIT enabled and GIL disabled | ||
| run: | | ||
| sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{matrix.llvm }} | ||
| export PATH="$(llvm-config-${{matrix.llvm }} --bindir):$PATH" | ||
| sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh ${{env.llvm }} | ||
| export PATH="$(llvm-config-${{env.llvm }} --bindir):$PATH" | ||
| ./configure --enable-experimental-jit --with-pydebug --disable-gil | ||
| make all --jobs 4 | ||
| - name: Run tests | ||
This file was deleted.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.