Commit 86355da
committed
ci(chapel): unblock Compile Chapel Metalayer + Build & Test Zig FFI Bridge
Chapel-CI has been red on every push since the workflow + sources
were authored (commit e44815a, 2026-04-20) — zero successful runs in
the 100-run history. Two independent pre-existing breakages:
## Job 1: `Compile Chapel Metalayer` — `extern "C" { ... }` parse error
`chapel_ffi_exports.chpl` wrapped its 35 prover-id / category-id
`c_int` constants in a single `extern "C" { ... }` block. That syntax
is the Chapel "extern blocks" feature, which requires the Chapel
compiler to be built with LLVM + clang headers available. The
official `chapel-2.3.0-1.ubuntu24.amd64.deb` the workflow installs is
not built with that combination — so the parser bails at line 29:
chapel_ffi_exports.chpl:29: syntax error: near '{'
…
parallel_proof_search.chpl:186: syntax error: near 'proc' (cascade)
The constants are also `#define`d on the C side in
`src/zig_ffi/chapel_ffi_exports.h` — that is the canonical copy any
non-Chapel consumer reads. The Chapel copy only needs to be visible
to Chapel code; emitting it as a C-visible symbol via an `extern`
block is unnecessary. Dropping the wrapper and keeping the 35
declarations as plain module-level `const`s fixes the parse without
losing any contract. (Documented in-place; the comment block above
the constants points to the C header as the source of truth.)
## Job 2: `Build & Test Zig FFI Bridge` — Zig 0.14 API on 0.13 install
`src/zig_ffi/build.zig` line 1 already documents
`// Compatible with Zig 0.14+/0.15+`. Lines 23, 52, 74 use
`b.addLibrary(.{ ... .linkage = … })` which is the 0.14+ unified
`Build.addLibrary` API; Zig 0.13 only exposes the older
`addSharedLibrary` / `addStaticLibrary`. The workflow pinned
`mlugg/setup-zig@… with: version: 0.13.0` for both `zig-ffi` and
`rust-chapel-real` jobs, so every run hit:
build.zig:23:18: error: no field or member function named 'addLibrary' in 'Build'
Bumping both pins to `0.14.0` matches what the source already
declares.
## Effect
Both jobs should compile on this branch. `rust-chapel-feature` (Job
3) was previously skipped via the `needs: zig-ffi` dependency — with
Job 2 green, Job 3 actually runs. Job 4 (`rust-chapel-real`) is
`continue-on-error: true` so its outcome stays advisory.
Surfaced during the 2026-05-30 dependabot-deadlock triage as one of
the orthogonal failures on PR #128. None of these jobs are required
checks, so this PR doesn't unblock anything blocking the merge queue
— it just makes Chapel L2.1 actually verifiable on CI for the first
time, which matters as L2.2-L2.7 land.
Refs: handover/TODO.md P3 "L2.1 ✅ Done" — the "done" status was
based on local builds; CI verification has been broken from day 1.1 parent fd09dcb commit 86355da
1 file changed
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
78 | | - | |
| 78 | + | |
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
| |||
140 | 140 | | |
141 | 141 | | |
142 | 142 | | |
143 | | - | |
| 143 | + | |
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
| |||
0 commit comments