chore(varve): bump to layer 2026.09.1, and correct two things the bump exposed - #359
Merged
Merged
Conversation
…p exposed Layer 2026.09.1, pinned by digest (sha256:893dbbf4c4f0bcdf67d1b0bc0a9b68919881cba436c5021c58e4a9ddbf1bd498) — a name-only pin stops resolving when rolling republishes under a second manifest digest (varve#115). synth 0.60.0 -> 0.61.0 meld 0.52.0 -> 0.53.0 spar 0.40.0 loom 1.4.1 rivet 0.35.0 witness 0.43.0 All gates re-run under it: cross-arch PASS (ARM 13/13 seams held), driver-components PASS, graph-env PASS, object-freshness PASS, rivet validate PASS. 1. THE RISC-V LEDGER'S REASON WAS STALE. It said "rv32 emits a dangling `synth_func_N` for a declined internal, exit 0". synth 0.61.0 FIXED that (#1104). Measured under the new layer, rv32 now refuses loudly: exit=1 Error: #1102: 5 retained function(s) relocate against function(s) this compile DECLINED ... refusing to emit it rather than shipping an unlinkable object with exit 0 The 13 drivers still do not cross, so the ledger's CONTENTS are right and the gate stays green — but its stated justification described a defect that no longer happens. A ledger that is accurate about what fails and wrong about why is the kind of thing nobody re-reads. Corrected to describe the behaviour under the pinned toolchain. 2. THE CI SYNTH PIN DRIFTED, AGAIN. drv-cross-arch.yml downloads its own synth rather than resolving through varve, so the pin exists twice. Its comment says "KEEP IN SYNC WITH varve.toml ... the pin exists twice and can drift. It just did" — and it just did again: varve.toml resolved 0.61.0 while the workflow still said 0.60.0. Bumped. Worth naming: the warning comment was written BY the previous drift, and did not prevent the next one. A note is not a control. These two pins want a gate that compares them. 3. WHAT 2026.09.1 DOES NOT DO. It does not carry synth's region-table symbols (__synth_mem_base_N / _size_N), which merged after v0.61.0. Verified rather than assumed: the same two-tenant module compiles clean under the pinned 0.61.0 and emits ZERO synth_mem symbols, against 4 from a build of synth main. So the v0.5.0 two-tenant demonstrator stays an unpinned prototype; it cannot become committed evidence until a released synth carrying those symbols lands in a layer. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011QG86sovTbfnPNY9SfhSmo
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
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.
Layer 2026.09.1, pinned by digest (
sha256:893dbbf4…bd498) — a name-only pin stopsresolving when rolling republishes under a second manifest digest (varve#115).
All gates re-run under it: cross-arch PASS (ARM 13/13 seams held), driver-components
PASS, graph-env PASS, object-freshness PASS,
rivet validatePASS.1. The RISC-V ledger's reason was stale
It said "rv32 emits a dangling
synth_func_Nfor a declined internal, exit 0".synth 0.61.0 fixed exactly that (#1104). Measured under the new layer:
The 13 drivers still don't cross, so the ledger's contents are right and the gate
stays green — but its stated justification described a defect that no longer happens. A
ledger that is accurate about what fails and wrong about why is the kind nobody
re-reads. Corrected to describe the pinned toolchain's actual behaviour.
2. The CI synth pin drifted, again
drv-cross-arch.ymldownloads its own synth rather than resolving through varve, so thepin exists twice. Its own comment reads:
And it just did again — varve.toml resolved 0.61.0 while the workflow still said 0.60.0.
Worth naming rather than just fixing: that warning comment was written by the previous
drift, and did not prevent the next one. A note is not a control. These two pins want a
gate that compares them, which I have not built here.
3. What 2026.09.1 does not do
It does not carry synth's region-table symbols (
__synth_mem_base_N/_size_N),which merged after v0.61.0. Verified rather than assumed — the same two-tenant module
under the pinned 0.61.0:
So the v0.5.0 two-tenant demonstrator stays an unpinned prototype. It cannot become
committed evidence until a released synth carrying those symbols lands in a layer.
Kill-criterion: varve.toml and
drv-cross-arch.ymlname different synth versions.🤖 Generated with Claude Code
https://claude.ai/code/session_011QG86sovTbfnPNY9SfhSmo