8000 gh-119292: Add job to `jit.yml` to build and test with `--disable-gil` by savannahostrowski · Pull Request #119293 · python/cpython · GitHub
[go: up one dir, main page]

Skip to content

gh-119292: Add job to jit.yml to build and test with --disable-gil #119293

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

Merged
merged 10 commits into from
May 21, 2024
Prev Previous commit
Next Next commit
comment out for testing
  • Loading branch information
savannahostrowski committed May 21, 2024
commit b05a1fe97a0627d8a8f361370d2c3ecb97ef1c1e
240 changes: 120 additions & 120 deletions .github/workflows/jit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,131 +20,131 @@ concurrency:
cancel-in-progress: true

jobs:
jit:
name: ${{ matrix.target }} (${{ matrix.debug && 'Debug' || 'Release' }})
runs-on: ${{ matrix.runner }}
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
- x86_64-unknown-linux-gnu/clang
- aarch64-unknown-linux-gnu/gcc
- aarch64-unknown-linux-gnu/clang
debug:
- true
- false
llvm:
- 18
include:
- target: i686-pc-windows-msvc/msvc
architecture: Win32
runner: windows-latest
compiler: msvc
- target: x86_64-pc-windows-msvc/msvc
architecture: x64
runner: windows-latest
compiler: msvc
- target: aarch64-pc-windows-msvc/msvc
architecture: ARM64
runner: windows-latest
compiler: msvc
- target: x86_64-apple-darwin/clang
architecture: x86_64
runner: macos-13
compiler: clang
- target: aarch64-apple-darwin/clang
architecture: aarch64
runner: macos-14
compiler: clang
- target: x86_64-unknown-linux-gnu/gcc
architecture: x86_64
runner: ubuntu-latest
compiler: gcc
- target: x86_64-unknown-linux-gnu/clang
architecture: x86_64
runner: ubuntu-latest
compiler: clang
- target: aarch64-unknown-linux-gnu/gcc
architecture: aarch64
runner: ubuntu-latest
compiler: gcc
- target: aarch64-unknown-linux-gnu/clang
architecture: aarch64
runner: ubuntu-latest
compiler: clang
env:
CC: ${{ matrix.compiler }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
# jit:
# name: ${{ matrix.target }} (${{ matrix.debug && 'Debug' || 'Release' }})
# runs-on: ${{ matrix.runner }}
# 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
# - x86_64-unknown-linux-gnu/clang
# - aarch64-unknown-linux-gnu/gcc
# - aarch64-unknown-linux-gnu/clang
# debug:
# - true
# - false
# llvm:
# - 18
# include:
# - target: i686-pc-windows-msvc/msvc
# architecture: Win32
# runner: windows-latest
# compiler: msvc
# - target: x86_64-pc-windows-msvc/msvc
# architecture: x64
# runner: windows-latest
# compiler: msvc
# - target: aarch64-pc-windows-msvc/msvc
# architecture: ARM64
# runner: windows-latest
# compiler: msvc
# - target: x86_64-apple-darwin/clang
# architecture: x86_64
# runner: macos-13
# compiler: clang
# - target: aarch64-apple-darwin/clang
# architecture: aarch64
# runner: macos-14
# compiler: clang
# - target: x86_64-unknown-linux-gnu/gcc
# architecture: x86_64
# runner: ubuntu-latest
# compiler: gcc
# - target: x86_64-unknown-linux-gnu/clang
# architecture: x86_64
# runner: ubuntu-latest
# compiler: clang
# - target: aarch64-unknown-linux-gnu/gcc
# architecture: aarch64
# runner: ubuntu-latest
# compiler: gcc
# - target: aarch64-unknown-linux-gnu/clang
# architecture: aarch64
# runner: ubuntu-latest
# compiler: clang
# env:
# CC: ${{ matrix.compiler }}
# 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'
run: |
choco upgrade llvm -y
choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}
./PCbuild/build.bat --experimental-jit ${{ matrix.debug && '-d' || '--pgo' }} -p ${{ matrix.architecture }}
./PCbuild/rt.bat ${{ matrix.debug && '-d' || '' }} -p ${{ matrix.architecture }} -q --multiprocess 0 --timeout 4500 --verbose2 --verbose3
# - name: Native Windows
# if: runner.os == 'Windows' && matrix.architecture != 'ARM64'
# run: |
# choco upgrade llvm -y
# choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}
# ./PCbuild/build.bat --experimental-jit ${{ matrix.debug && '-d' || '--pgo' }} -p ${{ matrix.architecture }}
# ./PCbuild/rt.bat ${{ matrix.debug && '-d' || '' }} -p ${{ matrix.architecture }} -q --multiprocess 0 --timeout 4500 --verbose2 --verbose3

# No PGO or tests (yet):
- name: Emulated Windows
if: runner.os == 'Windows' && matrix.architecture == 'ARM64'
run: |
choco upgrade llvm -y
choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}
./PCbuild/build.bat --experimental-jit ${{ matrix.debug && '-d' || '' }} -p ${{ matrix.architecture }}
# # No PGO or tests (yet):
# - name: Emulated Windows
# if: runner.os == 'Windows' && matrix.architecture == 'ARM64'
# run: |
# choco upgrade llvm -y
# choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}
# ./PCbuild/build.bat --experimental-jit ${{ matrix.debug && '-d' || '' }} -p ${{ matrix.architecture }}

- name: Native macOS
if: runner.os == 'macOS'
run: |
brew update
brew install llvm@${{ matrix.llvm }}
SDKROOT="$(xcrun --show-sdk-path)" \
./configure --enable-experimental-jit ${{ matrix.debug && '--with-pydebug' || '--enable-optimizations --with-lto' }}
make all --jobs 4
./python.exe -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3
# - name: Native macOS
# if: runner.os == 'macOS'
# run: |
# brew update
# brew install llvm@${{ matrix.llvm }}
# SDKROOT="$(xcrun --show-sdk-path)" \
# ./configure --enable-experimental-jit ${{ matrix.debug && '--with-pydebug' || '--enable-optimizations --with-lto' }}
# make all --jobs 4
# ./python.exe -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3

# --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)
- name: Native Linux
if: runner.os == 'Linux' && matrix.architecture == 'x86_64'
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 --enable-experimental-jit ${{ matrix.debug && '--with-pydebug' || '--enable-optimizations' }}
make all --jobs 4
./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3
# # --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)
# - name: Native Linux
# if: runner.os == 'Linux' && matrix.architecture == 'x86_64'
# 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 --enable-experimental-jit ${{ matrix.debug && '--with-pydebug' || '--enable-optimizations' }}
# make all --jobs 4
# ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3

# # --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)
# - name: Emulated Linux
# 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
# ${{ !matrix.debug && matrix.compiler == 'clang' && './configure --enable-optimizations' || '' }}
# ${{ !matrix.debug && matrix.compiler == 'clang' && 'make profile-run-stamp --jobs 4' || '' }}
# export QEMU_LD_PREFIX="/usr/$HOST"
# CC="${{ matrix.compiler == 'clang' && 'clang --target=$HOST' || '$HOST-gcc' }}" \
# CPP="$CC --preprocess" \
# HOSTRUNNER=qemu-${{ matrix.architecture }} \
# ./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
# make all --jobs 4
# ./python -m test --ignorefile=Tools/jit/ignore-tests-emulated-linux.txt --multiprocess 0 --timeout 4500 --verbose2 --verbose3

# --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)
- name: Emulated Linux
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
${{ !matrix.debug && matrix.compiler == 'clang' && './configure --enable-optimizations' || '' }}
${{ !matrix.debug && matrix.compiler == 'clang' && 'make profile-run-stamp --jobs 4' || '' }}
export QEMU_LD_PREFIX="/usr/$HOST"
CC="${{ matrix.compiler == 'clang' && 'clang --target=$HOST' || '$HOST-gcc' }}" \
CPP="$CC --preprocess" \
HOSTRUNNER=qemu-${{ matrix.architecture }} \
./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
make all --jobs 4
./python -m test --ignorefile=Tools/jit/ignore-tests-emulated-linux.txt --multiprocess 0 --timeout 4500 --verbose2 --verbose3

jit-with-no-gil:
runs-on: x86_64-unknown-linux-gnu/gcc
strategy:
Expand Down
0