You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Baseline: rust-ci.yml uses --all-features → force-enables system-dep features (flint/spark/chapel) → fails on bare runner #85
Test Suite, Code Coverage, MVP Smoke, and Julia Integration fail on every PR (observed on #73, not introduced by it — present on origin/main) with:
warning: echidna@2.1.0: FLINT not found via pkg-config — trying bare -lflint.
error: rust-lld: error: unable to find library -lflint
error: could not compile `echidna` (lib test) due to 1 previous error
Root cause (corrected)
build.rscorrectly gates the -lflint link behind #[cfg(feature = "flint")] — it is not unconditional.
The real cause is .github/workflows/rust-ci.yml, which runs everything with --all-features (lines 49, 52, 55, 136, 205):
--all-features force-enables flint, spark, and chapel — all deliberately opt-in, system-library-dependent features (per Cargo.toml: FLINT = system libflint LGPL-3; SPARK = GNAT/libechidna_spark; chapel = Zig FFI lib). The default GitHub runner has none of these, so the link fails (flint first, by link order; spark/chapel would fail too).
These features each already have their own dedicated CI: chapel-ci.yml, the SPARK Theatre Gate (#84), live-provers.yml. The default rust-ci.yml should exercise only the pure-Rust feature set.
Fix (dedicated PR, off main)
In rust-ci.yml, replace --all-features with the safe pure-Rust optional set --features verisim for the clippy / unit-test / integration-test / doc / MSRV steps. (verisim is the only optional feature with no system dependency; live-provers ⊇ verisim.) flint/spark/chapel stay covered by their dedicated workflows.
Why baseline, not a PR defect
Present on origin/main; independent of any PR diff. Per estate guardrail (baseline-rot ≠ PR-defect): fix here in a dedicated PR, then blocked PRs (e.g. #73) pick it up on their next main merge. Distinct from the CI-infra jam #77.
changed the title [-]Baseline: build.rs links `-lflint` unconditionally — fails CI test/coverage/smoke even with the `flint` feature off[/-][+]Baseline: rust-ci.yml uses --all-features → force-enables system-dep features (flint/spark/chapel) → fails on bare runner[/+]on May 19, 2026
Fix in #86. Refined after a coverage audit: rather than a blanket --features verisim (which would have stopped CI compiling/linting ~510 LoC of flint + the root-crate spark-gated FFI entirely), only the two linkingcargo test steps drop to --features verisim. clippy/doc/check keep --all-features because they type-check + lint the cfg-gated code without invoking the linker, so they are safe on a bare runner and retain full lint coverage of flint/spark/chapel. Verified: cargo test --lib --features verisim → 1092 passed, 0 failed.
Activity
[-]Baseline: build.rs links `-lflint` unconditionally — fails CI test/coverage/smoke even with the `flint` feature off[/-][+]Baseline: rust-ci.yml uses --all-features → force-enables system-dep features (flint/spark/chapel) → fails on bare runner[/+]fix(ci): rust-ci.yml — only the linking test steps drop --all-features (
hyperpolymath commentedon May 19, 2026
Fix in #86. Refined after a coverage audit: rather than a blanket
--features verisim(which would have stopped CI compiling/linting ~510 LoC offlint+ the root-cratespark-gated FFI entirely), only the two linkingcargo teststeps drop to--features verisim.clippy/doc/checkkeep--all-featuresbecause they type-check + lint the cfg-gated code without invoking the linker, so they are safe on a bare runner and retain full lint coverage of flint/spark/chapel. Verified:cargo test --lib --features verisim→ 1092 passed, 0 failed.docs: CI-baseline triage record (human ADR + machine STATE) (#85)
ci(chapel): bump Chapel toolchain 2.3.0 → 2.8.0 (closes #181) (#183)