From a53dedfb4b46abbc068d30919522b8269414bd68 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Wed, 26 Aug 2026 21:57:42 +0200 Subject: [PATCH] CI: test the Julia GC integration with VALIDATE_MARKING Add a job to the GAP.jl workflow that builds the override GAP with VALIDATE_MARKING enabled, so regressions in the marking code abort the tests instead of going unnoticed. Requires the --validate-marking flag of etc/setup_override_dir.jl in GAP.jl master, so the job pins gapjl-version to master. This change was prepared with the assistance of Claude Code. Co-authored-by: Claude Fable 5 --- .github/workflows/gapjl.yml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gapjl.yml b/.github/workflows/gapjl.yml index f23b79ddab..90681ef1f6 100644 --- a/.github/workflows/gapjl.yml +++ b/.github/workflows/gapjl.yml @@ -17,7 +17,7 @@ concurrency: jobs: test: - name: Julia ${{ matrix.julia-version }} - GAP.jl ${{ matrix.gapjl-version }} - ${{ matrix.os }} + name: Julia ${{ matrix.julia-version }} - GAP.jl ${{ matrix.gapjl-version }} - ${{ matrix.os }}${{ matrix.validate-marking && ' - VALIDATE_MARKING' || '' }} runs-on: ${{ matrix.os }} timeout-minutes: 40 continue-on-error: ${{ matrix.julia-version == 'nightly' }} @@ -33,6 +33,8 @@ jobs: - 'nightly' os: - ubuntu-latest + validate-marking: + - false include: # Add a few macOS jobs (the number we can run in parallel is limited) - gapjl-version: 'latest-release' @@ -41,6 +43,13 @@ jobs: - gapjl-version: 'master' julia-version: '1' os: macOS-latest + # build the Julia GC integration with VALIDATE_MARKING, to detect + # invalid references during GC marking + # (see https://github.com/oscar-system/GAP.jl/issues/1364) + - gapjl-version: 'master' + julia-version: '1' + os: ubuntu-latest + validate-marking: true steps: - name: Checkout GAP @@ -97,7 +106,7 @@ jobs: make -j`nproc` - name: "Override bundled GAP" run: | - julia --project=$GAPJLPATH $GAPJLPATH/etc/setup_override_dir.jl /tmp/GAPROOT /tmp/gap_jll_override --enable-Werror + julia --project=$GAPJLPATH $GAPJLPATH/etc/setup_override_dir.jl /tmp/GAPROOT /tmp/gap_jll_override --enable-Werror ${{ matrix.validate-marking && '--validate-marking' || '' }} - name: "Run tests" run: | julia --project=$GAPJLPATH $GAPJLPATH/etc/run_with_override.jl /tmp/gap_jll_override --depwarn=error -e "using Pkg; Pkg.test(\"GAP\")"