Skip to content

release-watch: synth v0.55 (VCR-RA-003 proves v0.53 miscompiled) + gale v0.6.0 gale-nano lowers to ALL THREE cores - #178

Open
avrabe wants to merge 2 commits into
mainfrom
release-watch/synth055-vcr-ra-003
Open

release-watch: synth v0.55 (VCR-RA-003 proves v0.53 miscompiled) + gale v0.6.0 gale-nano lowers to ALL THREE cores#178
avrabe wants to merge 2 commits into
mainfrom
release-watch/synth055-vcr-ra-003

Conversation

@avrabe

@avrabe avrabe commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Two supplier gates fired after a ~2-week gap.

1. synth v0.55 — the "lowers ≠ works" caution is now concretely vindicated

v0.55 adds VCR-RA-003, a register-allocation validator: "JoinValueNotAvailable { reg: R6, join_block: 8 } … this is a compiler bug, not a program error. Refusing to emit a miscompiled object" — and it names "the #881 VFP twins".

Per-stage skips on the WASI-carrying v1.128 components rose by one each (rate 2→3, others 3→4, fused 7→8). This is an honesty improvement, not a regression: the newly-skipped helper per stage (rate func_90, attitude func_89, position func_92, iekf func_95, ekf func_90, flight func_122) was being emitted by v0.53 — verified: func_90 is absent from v0.53's skip list and present in v0.53's object. v0.53 shipped a miscompiled function; v0.55 declines it.

This vindicates the caution attached to the v0.53 result. jess's static checks then (trap guards, 11 matched spill slots, no ABI clobber) all passed and did not catch thisJoinValueNotAvailable is a different invariant. The stated limitation was real, not rhetorical.

The headline holds and is strengthened: the WASI-free falcon-rate:1.129.0 — the component the v0.53 headline was actually about — is 0 skips on both v0.53 and v0.55, so it passes the new validator. mixer too. Further evidence for relay's OCI-P02 no_std rollout: the WASI-free build stays inside the allocator's competence.

M4 lockout unchanged — WASI-free rate still m7dp-only ("scalar f64 requires a double-precision FPU"). v0.54/0.55 didn't address the --builtins item and synth#881 is closed, so the estimator-on-M4 blocker now has no open tracker.

2. gale v0.6.0 — gale-nano published, and it lowers to all three cores

ghcr.io/pulseengine/gale-nano:0.6.0 is live. Pulled anonymously, digest-verified, checked against gale's own acceptance invariant:

  • Shape correct — real component, 20,741 B. WIT world matches the DD-026 three-layer contract exactly: exports gust:os/{time,log,spawn,exec,timer}, imports gust:hal/mmio + gust:os/taskdisp. The contract pinned before anyone built to it is what shipped.
  • Invariant verifiedmeld 0.41.1 fuse --memory shared → loom → synth 0.55 --relocatable0 skips, exactly three undefined symbols: read32, write32 (gust:hal/mmio) and poll-task (taskdisp). No scheduler or heap leak.
  • All three north-star cores, identical residual: m7dp 0/7439 B · m4f 0/7439 B · m3 0/7435 B.

North-star state: runtime = 3/3 cores; application (falcon) = 2/6 stages on 1/3 cores.

Method note: jess's first run used plain meld fuse on 0.39 instead of gale's documented --memory shared, and produced 10 skips — which would have been filed as a false defect against gale. Re-running the documented pipeline gives 0. Recorded because "run the supplier's documented pipeline before reporting a failure against it" generalises.

rivet validate → PASS.

🤖 Generated with Claude Code

avrabe and others added 2 commits August 12, 2026 00:31
…itting a miscompile; "lowers != works" concretely vindicated

v0.55 adds VCR-RA-003, a register-allocation validator that refuses to emit an object whose RA
violates an invariant ("JoinValueNotAvailable { reg: R6, join_block: 8 } ... this is a COMPILER BUG,
not a program error. Refusing to emit a miscompiled object" — and it names "the #881 VFP twins").

Per-stage skips on the WASI-CARRYING v1.128 components rose by exactly one each (rate 2->3,
attitude/position/ekf/iekf 3->4, flight 7->8). This is an HONESTY IMPROVEMENT, not a regression:
the newly-skipped helper per stage (rate func_90, attitude func_89, position func_92, iekf func_95,
ekf func_90, flight func_122) WAS BEING EMITTED BY v0.53 — verified, func_90 is absent from v0.53's
skip list and present in v0.53's object. v0.53 shipped a miscompiled function; v0.55 declines it.

This concretely vindicates the caution jess attached to the v0.53 result. jess's static checks then
(trap guards, 11 matched spill slots, no ABI clobber) all PASSED and did NOT catch this, because
JoinValueNotAvailable is a different invariant. jess had stated exactly that limitation — it was real,
not rhetorical. Static checks are necessary but not sufficient.

HEADLINE HOLDS AND IS STRENGTHENED: the WASI-FREE falcon-rate:1.129.0 — the component the v0.53
headline was about — is 0 skips on BOTH v0.53 and v0.55, so it PASSES the new validator. mixer too.
The VCR-RA-003 failures are confined to the larger WASI-carrying builds — further evidence for
relay's OCI-P02 no_std rollout.

M4 lockout UNCHANGED: WASI-free rate still m7dp-only ("scalar f64 requires a double-precision FPU").
v0.54/0.55 did not address the --builtins item and synth#881 is CLOSED — the estimator-on-M4 blocker
now has no open upstream tracker.

Verified: synth v0.55.0 SHA-verified; nm/skip evidence; rivet validate PASS.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…, acceptance invariant verified (DD-026 runtime half DELIVERED)

ghcr.io/pulseengine/gale-nano:0.6.0 is live. jess pulled anonymously, digest-verified, and checked
it against GALE'S OWN acceptance invariant (gale#223/DD-OS-DELIVERY-001).

SHAPE CORRECT: real component, 20,741 B. WIT world matches the DD-026 three-layer contract exactly —
exports gust:os/{time,log,spawn,exec,timer}, imports gust:hal/mmio + gust:os/taskdisp. The contract
pinned before anyone built to it is what shipped.

INVARIANT VERIFIED: meld 0.41.1 fuse --memory shared -> loom -> synth 0.55 --relocatable gives
0 SKIPS and exactly three undefined symbols: read32, write32 (gust:hal/mmio) + poll-task (taskdisp).
No scheduler or heap leak.

LOWERS ON ALL THREE NORTH-STAR CORES, identical residual: m7dp 0/7439B, m4f 0/7439B, m3 0/7435B.
Runtime layer is on-target-ready for M7 + M4 + F100 simultaneously.
North-star state: RUNTIME 3/3 cores; APPLICATION (falcon) 2/6 stages on 1/3 cores.

METHOD NOTE: jess's first run used plain 'meld fuse' on 0.39 (not gale's documented --memory shared)
and produced 10 skips — would have been filed as a false defect. Re-running gale's documented pipeline
gives 0. Recorded because 'run the supplier's documented pipeline before reporting a failure' generalises.

rivet validate PASS.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant