Skip to content

Adding coalton-based benchmark system #3560

Adding coalton-based benchmark system

Adding coalton-based benchmark system #3560

Workflow file for this run

name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
LISP_IMPL: ["sbcl", "allegro", "ccl"]
COALTON_ENV: ["release", "development"]
SAFETY: ["0", "3"]
DISABLE_SPECIALIZATION: ["1", "0"]
HEURISTIC_INLINING: ["1", "0"]
exclude:
# Since we don't have a way of switching safety on allegro or ccl, we can
# just ignore high safety tests.
- LISP_IMPL: "allegro"
SAFETY: "3"
- LISP_IMPL: "ccl"
SAFETY: "3"
permissions:
packages: read
container:
image: ghcr.io/coalton-lang/${{ matrix.LISP_IMPL }}-base
credentials:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
env:
# Tell ASDF to look through our repo recursively
# See https://github.com/actions/runner/issues/2058
CL_SOURCE_REGISTRY: "/__w/coalton/coalton//"
steps:
- uses: actions/checkout@v3
- name: Run SBCL tests
if: matrix.LISP_IMPL == 'sbcl'
env:
COALTON_ENV: ${{ matrix.COALTON_ENV }}
COALTON_DISABLE_SPECIALIZATION: ${{ matrix.DISABLE_SPECIALIZATION }}
COALTON_HEURISTIC_INLINING: ${{ matrix.HEURISTIC_INLINING }}
run: |
cat <<EOF > run-tests.lisp
(sb-ext:restrict-compiler-policy 'safety ${{ matrix.SAFETY }})
(ql:quickload :coalton/tests)
(asdf:test-system :coalton/tests)
; TODO: Remove this or add tests for these programs.
(asdf:load-system :small-coalton-programs)
EOF
sbcl --noinform --non-interactive --load run-tests.lisp
- name: Run Allegro CL tests
if: matrix.LISP_IMPL == 'allegro'
env:
COALTON_ENV: ${{ matrix.COALTON_ENV }}
COALTON_DISABLE_SPECIALIZATION: ${{ matrix.DISABLE_SPECIALIZATION }}
COALTON_HEURISTIC_INLINING: ${{ matrix.HEURISTIC_INLINING }}
run: |
cat <<EOF > run-tests.lisp
(ql:quickload :coalton/tests)
(asdf:test-system :coalton/tests)
; TODO: Remove this or add tests for these programs.
(asdf:load-system :small-coalton-programs)
EOF
cat run-tests.lisp | alisp --batch
- name: Run Clozure CL tests
if: matrix.LISP_IMPL == 'ccl'
env:
COALTON_ENV: ${{ matrix.COALTON_ENV }}
COALTON_DISABLE_SPECIALIZATION: ${{ matrix.DISABLE_SPECIALIZATION }}
COALTON_HEURISTIC_INLINING: ${{ matrix.HEURISTIC_INLINING }}
run: |
cat <<EOF > run-tests.lisp
(ql:quickload :coalton/tests)
(asdf:test-system :coalton/tests)
; TODO: Remove this or add tests for these programs.
(asdf:load-system :small-coalton-programs)
EOF
ccl64-wrapped.sh --batch --load run-tests.lisp