From 18349bfd37b42107e162185ffeed77e28aae3f88 Mon Sep 17 00:00:00 2001 From: Savannah Ostrowski Date: Mon, 20 May 2024 20:26:21 -0700 Subject: [PATCH 01/10] add jit and no gil ci job --- .github/workflows/jit.yml | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/.github/workflows/jit.yml b/.github/workflows/jit.yml index 7152cde8f4607c..e458cad1080b26 100644 --- a/.github/workflows/jit.yml +++ b/.github/workflows/jit.yml @@ -85,7 +85,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.11' - name: Native Windows if: runner.os == 'Windows' && matrix.architecture != 'ARM64' @@ -144,3 +144,28 @@ jobs: ./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: + fail-fast: false + matrix: + llvm: + - 18 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.11' + - name: Build with JIT and No GIL + 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 --with-pydebug --disable-gil + make all --jobs 4 + - name: Run Test Suite + run: | + ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 + + + + From 39b2a13f908915dff5e3baa07a23f7e933a8a614 Mon Sep 17 00:00:00 2001 From: Savannah Ostrowski Date: Mon, 20 May 2024 20:26:50 -0700 Subject: [PATCH 02/10] remove newlines; --- .github/workflows/jit.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/jit.yml b/.github/workflows/jit.yml index e458cad1080b26..e299ee31660e3c 100644 --- a/.github/workflows/jit.yml +++ b/.github/workflows/jit.yml @@ -144,6 +144,7 @@ jobs: ./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: @@ -164,8 +165,4 @@ jobs: make all --jobs 4 - name: Run Test Suite run: | - ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 - - - - + ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 From b05a1fe97a0627d8a8f361370d2c3ecb97ef1c1e Mon Sep 17 00:00:00 2001 From: Savannah Ostrowski Date: Mon, 20 May 2024 20:45:50 -0700 Subject: [PATCH 03/10] comment out for testing --- .github/workflows/jit.yml | 240 +++++++++++++++++++------------------- 1 file changed, 120 insertions(+), 120 deletions(-) diff --git a/.github/workflows/jit.yml b/.github/workflows/jit.yml index e299ee31660e3c..83be748d06251d 100644 --- a/.github/workflows/jit.yml +++ b/.github/workflows/jit.yml @@ -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: From 7526af31e20fa09c7f454f184576a20580936d66 Mon Sep 17 00:00:00 2001 From: Savannah Ostrowski Date: Mon, 20 May 2024 20:50:57 -0700 Subject: [PATCH 04/10] switch to ubuntu-latest --- .github/workflows/jit.yml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/.github/workflows/jit.yml b/.github/workflows/jit.yml index 83be748d06251d..6df39fc2ff6d29 100644 --- a/.github/workflows/jit.yml +++ b/.github/workflows/jit.yml @@ -146,12 +146,7 @@ jobs: # ./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: - fail-fast: false - matrix: - llvm: - - 18 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 @@ -159,8 +154,8 @@ jobs: python-version: '3.11' - name: Build with JIT and No GIL 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 18 + export PATH="$(llvm-config-18 --bindir):$PATH" ./configure --enable-experimental-jit --with-pydebug --disable-gil make all --jobs 4 - name: Run Test Suite From 58430116bd052363f66d365ff0cd733d7b3f6cac Mon Sep 17 00:00:00 2001 From: Savannah Ostrowski Date: Mon, 20 May 2024 20:53:58 -0700 Subject: [PATCH 05/10] uncomment and update text --- .github/workflows/jit.yml | 242 +++++++++++++++++++------------------- 1 file changed, 121 insertions(+), 121 deletions(-) diff --git a/.github/workflows/jit.yml b/.github/workflows/jit.yml index 6df39fc2ff6d29..0950c4becbc203 100644 --- a/.github/workflows/jit.yml +++ b/.github/workflows/jit.yml @@ -20,130 +20,130 @@ 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: ubuntu-latest @@ -152,12 +152,12 @@ jobs: - uses: actions/setup-python@v5 with: python-version: '3.11' - - name: Build with JIT and No GIL + - name: Build with JIT and GIL disabled run: | sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh 18 export PATH="$(llvm-config-18 --bindir):$PATH" ./configure --enable-experimental-jit --with-pydebug --disable-gil make all --jobs 4 - - name: Run Test Suite + - name: Run tests run: | ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 From 471e5ebaa24a7fde5adb4dd181a2a8f34f8cf680 Mon Sep 17 00:00:00 2001 From: Savannah Ostrowski Date: Mon, 20 May 2024 20:54:51 -0700 Subject: [PATCH 06/10] remove extraneous whitespace --- .github/workflows/jit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/jit.yml b/.github/workflows/jit.yml index 0950c4becbc203..58a5b8280f2f56 100644 --- a/.github/workflows/jit.yml +++ b/.github/workflows/jit.yml @@ -85,7 +85,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.11' - name: Native Windows if: runner.os == 'Windows' && matrix.architecture != 'ARM64' From 88e07d3b4962a83b296137702061b817d651fa53 Mon Sep 17 00:00:00 2001 From: Savannah Ostrowski Date: Mon, 20 May 2024 21:09:42 -0700 Subject: [PATCH 07/10] remove extraneous whitespace --- .github/workflows/jit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/jit.yml b/.github/workflows/jit.yml index 58a5b8280f2f56..77b3b97cc8120f 100644 --- a/.github/workflows/jit.yml +++ b/.github/workflows/jit.yml @@ -160,4 +160,4 @@ jobs: make all --jobs 4 - name: Run tests run: | - ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 + ./python -m test --multiprocess 0 --timeout 4500 --verbose2 --verbose3 From 6b760d39206aa3c0f42023ff08641e23d388c852 Mon Sep 17 00:00:00 2001 From: Savannah Ostrowski Date: Mon, 20 May 2024 21:36:56 -0700 Subject: [PATCH 08/10] Update .github/workflows/jit.yml Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> --- .github/workflows/jit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/jit.yml b/.github/workflows/jit.yml index 77b3b97cc8120f..68b35d708f578e 100644 --- a/.github/workflows/jit.yml +++ b/.github/workflows/jit.yml @@ -145,7 +145,7 @@ jobs: 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: + jit-with-disabled-gil: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 From add965946f6ebf83f69a98e16487e04b65659204 Mon Sep 17 00:00:00 2001 From: Savannah Ostrowski Date: Mon, 20 May 2024 21:37:05 -0700 Subject: [PATCH 09/10] Update .github/workflows/jit.yml Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> --- .github/workflows/jit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/jit.yml b/.github/workflows/jit.yml index 68b35d708f578e..7aec95fa180554 100644 --- a/.github/workflows/jit.yml +++ b/.github/workflows/jit.yml @@ -152,7 +152,7 @@ jobs: - uses: actions/setup-python@v5 with: python-version: '3.11' - - name: Build with JIT and GIL disabled + - name: Build with JIT enabled and GIL disabled run: | sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" ./llvm.sh 18 export PATH="$(llvm-config-18 --bindir):$PATH" From e50b538d94724f1bfbebd18625d7091817006696 Mon Sep 17 00:00:00 2001 From: Savannah Ostrowski Date: Tue, 21 May 2024 06:14:17 -0700 Subject: [PATCH 10/10] Update jit.yml Co-authored-by: Brandt Bucher --- .github/workflows/jit.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/jit.yml b/.github/workflows/jit.yml index 7aec95fa180554..11634c6e985c3f 100644 --- a/.github/workflows/jit.yml +++ b/.github/workflows/jit.yml @@ -146,6 +146,7 @@ jobs: ./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) runs-on: ubuntu-latest steps: - uses: actions/checkout@v4