tools/verify_igla_race.py reports IGLA RACE CROSS-TARGET MISMATCH and exits 1:
FAIL: C backend failed to build/run
FAIL: Rust backend failed to build/run
FAIL: systolic PE C failed to build/run
FAIL: systolic PE Rust failed to build/run
This is not new. The identical four lines appear in the 2026-08-14 run on w699-gate-topology (run 31843694525). The gate last passed 2026-08-08. Between those dates it ran zero times, and only three times in ten days — because its paths: filter did not include bootstrap/**, where all four backends live. The divergence has therefore been unproven, not absent, for at least four days.
The specific defects, from the script's own notes:
gen_rust emits a mixed-width add with no cast — i16 + i8. Rust rejects it; C silently promotes. That is a genuine semantic divergence between two targets the project claims are bit-exact, not a build-config problem.
systolic_ternary imports ternary_mul but the import is not emitted into its C/Rust output — a dangling call. The primitive currently has to be supplied from ternary_mac's core.
- Emitter gaps on the full IGLA spec: slice
.len(), duplicate test emission, serde deps, non-Copy struct.
Why it matters more than a red check. "One spec, four targets, bit-exact" is this repository's central claim. Item 1 is a case where two targets compute differently from the same spec — exactly what the gate exists to detect. It detected it four days ago and nobody saw, because almost nothing triggered the gate.
Exposed by #2183 / #2182, which makes the gate fire on compiler changes. That PR does not introduce this failure and does not fix it; it makes it visible. emit-bitexact is not in the required-checks table (docs/BRANCH-PROTECTION.md), so master going red here does not block other PRs.
Refs #2183
tools/verify_igla_race.pyreportsIGLA RACE CROSS-TARGET MISMATCHand exits 1:This is not new. The identical four lines appear in the 2026-08-14 run on
w699-gate-topology(run 31843694525). The gate last passed 2026-08-08. Between those dates it ran zero times, and only three times in ten days — because itspaths:filter did not includebootstrap/**, where all four backends live. The divergence has therefore been unproven, not absent, for at least four days.The specific defects, from the script's own notes:
gen_rustemits a mixed-width add with no cast —i16 + i8. Rust rejects it; C silently promotes. That is a genuine semantic divergence between two targets the project claims are bit-exact, not a build-config problem.systolic_ternaryimportsternary_mulbut the import is not emitted into its C/Rust output — a dangling call. The primitive currently has to be supplied fromternary_mac's core..len(), duplicate test emission, serde deps, non-Copystruct.Why it matters more than a red check. "One spec, four targets, bit-exact" is this repository's central claim. Item 1 is a case where two targets compute differently from the same spec — exactly what the gate exists to detect. It detected it four days ago and nobody saw, because almost nothing triggered the gate.
Exposed by #2183 / #2182, which makes the gate fire on compiler changes. That PR does not introduce this failure and does not fix it; it makes it visible.
emit-bitexactis not in the required-checks table (docs/BRANCH-PROTECTION.md), so master going red here does not block other PRs.Refs #2183