|
21 | 21 | pull_request: |
22 | 22 | paths: |
23 | 23 | - 'src/abi/**' |
| 24 | + - 'src/formal/**' |
| 25 | + - 'idris2/**' |
24 | 26 | - '.github/workflows/abi-verify.yml' |
25 | 27 | push: |
26 | 28 | branches: [main] |
27 | 29 | paths: |
28 | 30 | - 'src/abi/**' |
| 31 | + - 'src/formal/**' |
| 32 | + - 'idris2/**' |
29 | 33 |
|
30 | 34 | permissions: |
31 | 35 | contents: read |
|
56 | 60 | # well-typed and do NOT fail the build — they are tracked in |
57 | 61 | # PROOF-NEEDS.md, not hidden. |
58 | 62 | idris2 --build ephapax-abi.ipkg |
| 63 | +
|
| 64 | + idris2-formal: |
| 65 | + name: Idris2 formal seam (ephapax-formal.ipkg) |
| 66 | + runs-on: ubuntu-latest |
| 67 | + timeout-minutes: 20 |
| 68 | + container: |
| 69 | + image: snazzybucket/idris2:latest # estate-standard Idris2 image |
| 70 | + steps: |
| 71 | + - name: Checkout repository |
| 72 | + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v4 |
| 73 | + |
| 74 | + - name: Build (typecheck) the formal package |
| 75 | + working-directory: src/formal |
| 76 | + run: | |
| 77 | + idris2 --version |
| 78 | + idris2 --build ephapax-formal.ipkg |
| 79 | +
|
| 80 | + idris2-parse-front: |
| 81 | + name: Idris2 parse front-end (ephapax-parse-tests.ipkg) |
| 82 | + runs-on: ubuntu-latest |
| 83 | + timeout-minutes: 20 |
| 84 | + container: |
| 85 | + image: snazzybucket/idris2:latest # estate-standard Idris2 image |
| 86 | + steps: |
| 87 | + - name: Checkout repository |
| 88 | + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v4 |
| 89 | + |
| 90 | + - name: Build the parse front-end + test executable |
| 91 | + working-directory: idris2 |
| 92 | + run: | |
| 93 | + idris2 --version |
| 94 | + # Compile-time gate only: the %foreign C bindings in |
| 95 | + # Parse/ZigBuffer.idr resolve libephapax_tokbuf at RUNTIME |
| 96 | + # (Chez dlopen), so building the executable needs no zig. |
| 97 | + # Running it does — that path is exercised locally via |
| 98 | + # zig build-lib -dynamic -lc ffi/zig/tokbuf.zig \ |
| 99 | + # -femit-bin=libephapax_tokbuf.so |
| 100 | + # LD_LIBRARY_PATH=. ./build/exec/ephapax-parse-tests |
| 101 | + # and the zig side is unit-gated by ffi-seams.yml. |
| 102 | + # (ephapax-affine.ipkg is NOT gated here: it depends on the |
| 103 | + # external `proven` package — see PROOF-NEEDS.md.) |
| 104 | + idris2 --build ephapax-parse-tests.ipkg |
0 commit comments