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
Open
Conversation
…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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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, attitudefunc_89, positionfunc_92, iekffunc_95, ekffunc_90, flightfunc_122) was being emitted by v0.53 — verified:func_90is 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 this —
JoinValueNotAvailableis 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.mixertoo. Further evidence for relay's OCI-P02no_stdrollout: 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--builtinsitem and synth#881 is closed, so the estimator-on-M4 blocker now has no open tracker.2. gale v0.6.0 —
gale-nanopublished, and it lowers to all three coresghcr.io/pulseengine/gale-nano:0.6.0is live. Pulled anonymously, digest-verified, checked against gale's own acceptance invariant:gust:os/{time,log,spawn,exec,timer}, importsgust:hal/mmio+gust:os/taskdisp. The contract pinned before anyone built to it is what shipped.meld 0.41.1 fuse --memory shared → loom → synth 0.55 --relocatable→ 0 skips, exactly three undefined symbols:read32,write32(gust:hal/mmio) andpoll-task(taskdisp). No scheduler or heap leak.m7dp0/7439 B ·m4f0/7439 B ·m30/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 fuseon 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