Repository navigation
seals: reseal builder, jit_semantics and packed_vsa, stale since today's merges (Closes #12347) - #12348
Merged
Conversation
#12347) #4642 added four lines to specs/tri/pipeline/builder.t27 without resealing it, so the Spec Guards seal currency step has been red on master since then and every new PR inherits the failure. This change resaves both seal files that name the spec (TriBuilder.json and pipeline_TriBuilder.json) with a t27c built from master commit a6bdfef. Its four generated-code hashes equal the "current" values that CI printed for job 121111974641. t27c seal --verify specs/tri/pipeline/builder.t27: all hashes MATCH. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gHashTag
enabled auto-merge (squash)
October 25, 2026 08:17
This was referenced Oct 25, 2026
Merged
test(analog): sar_switch mutation test gaps closed, 349 of 400 mutants killed (Closes #12287)
#12349
Merged
…and #4729 (Closes #12361) #4729 and #4563 merged into master on 2026-10-25. Both filled empty bodies in specs/vsa/packed_vsa.t27 and specs/vm/jit_semantics.t27 without resealing them, so the Spec Guards seal currency step and coverage went red again once #12347's builder seal was fixed. This change resaves the four seal files naming the two specs, with a t27c built from master commit a6bdfef. All eight generated-code hashes match the "current" values that CI printed for job 121116704617. t27c seal --verify on both specs: all hashes MATCH. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
auto-merge was automatically disabled
October 25, 2026 08:44
Head branch was modified
gHashTag
enabled auto-merge (squash)
October 25, 2026 08:45
This was referenced Oct 25, 2026
Contributor
This was referenced Oct 25, 2026
gHashTag
added a commit
that referenced
this pull request
Oct 25, 2026
…-widening fix (Refs #12296, Refs #9367) The emitter now extends a cast to a wider integer explicitly, so the Verilog of 220 specs (235 seal files with their twins) changed. In every one of them gen_hash_verilog is the only generated hash that moved; gen_hash_zig, gen_hash_rust and gen_hash_c are unchanged. The re-seal also refreshes built_by and, where it had gone stale, the test_runner hash. Written by tri seals drift --fix plus t27c seal specs/t27f/face.t27 --save (that one aborts in a build with overflow checks, array_size - 1 at compiler.rs:15134 on master, so the binary was built with CARGO_PROFILE_DEV_OVERFLOW_CHECKS=false, which matches the release build). The four stale seals that master already carries (GitDiff, git_GitDiff, TriBuilder, pipeline_TriBuilder: specs/git/diff.t27 and specs/tri/pipeline/builder.t27 changed after sealing) are left alone; #12348 and #12350 own them. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Contributor
PR DashboardGenerated at: 2026-10-25 09:51:39 UTC
Summary
Seal Status
|
gHashTag
added a commit
that referenced
this pull request
Oct 25, 2026
This was referenced Oct 25, 2026
gHashTag
added a commit
that referenced
this pull request
Oct 25, 2026
…12386) specs/storage/kv.t27's four gen hashes moved under it (rust, zig, c and verilog together -- a generator-side move, not a spec edit: the seal's spec_hash still matches). check_seal_currency goes red for every open PR on it; this records what the compiler now produces, the #12348 pattern. Both twins (StorageKv.json, storage_StorageKv.json) refreshed; coverage 3058 seals, 0 newly broken; currency 0 stale on the tree's own compiler.
gHashTag
added a commit
that referenced
this pull request
Oct 26, 2026
…st (Refs #11783) (#12398) * spec(tri): preflight push rule -- a push runs the nine labs gates first (Refs #11783) seals: reseal StorageKv + storage_StorageKv, stale since today's kv.t27 merges (same class as #12348); saved and verified with the t27c built from this tree. The census re-bless this lane carried locally was dropped here: #12357 landed it first. * merge: resolve seal artefacts and FROZEN_HASH to master's version
gHashTag
added a commit
that referenced
this pull request
Oct 26, 2026
…sion (Closes #12296) (#12338) * fix(gen-verilog): a cast to a wider integer widens the Verilog expression (Closes #12296) The ExprCast arm of gen_verilog_expr printed the operand of `x as u64` verbatim. Verilog sizes an expression to its widest operand, so `(a as u64) + (b as u64) > (lim as u64)` over u32 inputs stayed a 32-bit add and wrapped, while the interpreter (test-report runs zig) computed it at 64 bits: t27c test-report said 42 of 42 and vvp failed mem_access_past_the_page_traps on the WASM cell. A cast to a wider integer target now emits an explicit extension: zero-extending `{{(W-N){1'b0}}, op}` for an unsigned operand, sign-extending `{{(W-N){($signed(op) < 0)}}, op}` for a signed one, wrapped in `$signed(...)` for a signed target. The enclosing expression is then sized by the cast target, so sums and comparisons run at the widened width. Literal, unknown-width, float and 32-bit-plus signed-composite operands keep their old forms. Also: unit tests test_verilog_cast_width_correct (adds the u32 -> u64 sum and an i32 -> i64 case), test_verilog_cast_no_as_keyword and accepts_valid_cast_as_control follow the new text; the corpus spec specs/fpga/w5_cast_widen.t27 with its icarus baseline is the regression witness; tools/elab_baseline.txt gains the row `w5_cast_widen 0` (the ratchet reads specs/fpga by directory); bootstrap/stage0/FROZEN_HASH moves with compiler.rs. Refs #9367 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * chore(seal): FROZEN_HASH regenerated for the merged compiler.rs (Refs #12296, Refs #9367) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * chore(census): re-bless for t27os.yml, which arrived on master with the ledgers un-moved (Refs #12296, Refs #11788) The census moved because #12330 added .github/workflows/t27os.yml on master and did not re-bless: workflow files read 67 -> 68, jobs 96 -> 97, run: steps 329 -> 331, runner-named shells 308 -> 310. Written by tri census pin --bless, checked by tri census pin --gate (rc 0). Data only, no code. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * chore(seal): re-seal 235 seal files whose Verilog moved with the cast-widening fix (Refs #12296, Refs #9367) The emitter now extends a cast to a wider integer explicitly, so the Verilog of 220 specs (235 seal files with their twins) changed. In every one of them gen_hash_verilog is the only generated hash that moved; gen_hash_zig, gen_hash_rust and gen_hash_c are unchanged. The re-seal also refreshes built_by and, where it had gone stale, the test_runner hash. Written by tri seals drift --fix plus t27c seal specs/t27f/face.t27 --save (that one aborts in a build with overflow checks, array_size - 1 at compiler.rs:15134 on master, so the binary was built with CARGO_PROFILE_DEV_OVERFLOW_CHECKS=false, which matches the release build). The four stale seals that master already carries (GitDiff, git_GitDiff, TriBuilder, pipeline_TriBuilder: specs/git/diff.t27 and specs/tri/pipeline/builder.t27 changed after sealing) are left alone; #12348 and #12350 own them. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * chore(seal): re-seal the three specs whose Verilog moved after merging master (Refs #12296, Refs #9367) Merging origin/master (27 commits) conflicted in three seal files: fpga_wasm_opcodes, t27f_a11y_mirror and t27os_T27osAgentParts. Each took master's version and was re-sealed with the cast-widening emitter, so only gen_hash_verilog (plus built_by and sealed_at) differs from master. Six seals that my earlier re-seal had written against the older spec (JitSemantics, PackedVsa, TriBuilder and their twins) are restored to master's versions: master moved those specs and re-sealed them, and its seals already match the emitter output. tri seals drift: 0 specs moved. check_seal_coverage: OK, no gen-drift and no stale. check_seal_currency: 0 stale. tri census pin --gate: PASS. compiler.rs is still 40 added / 40 deleted against master and matches bootstrap/stage0/FROZEN_HASH. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * chore(seal): re-seal analog raw_writer and sar_switch after merging master (Refs #12296, Refs #9367) Merging ten more commits of origin/master conflicted in two seal files, analog_AnalogRawWriter and analog_AnalogSarSwitch. Each took master's version and was re-sealed with the cast-widening emitter, so only gen_hash_verilog (plus built_by and sealed_at) differs from master. tri seals drift lists nothing else of mine. The remaining stale pair, StorageKv and storage_StorageKv, comes from master: specs/storage/kv.t27 changed there after it was sealed, and this branch touches neither file. compiler.rs is still 40 added / 40 deleted against master and matches bootstrap/stage0/FROZEN_HASH. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * chore(seal): re-seal analog mos_table after merging master (Refs #12296, Refs #9367) Merging nine more commits of origin/master conflicted in one seal file, analog_AnalogMosTable. It took master's version and was re-sealed with the cast-widening emitter, so only gen_hash_verilog (plus built_by and sealed_at) differs from master. tri seals drift lists nothing else of mine. The remaining stale pair, StorageKv and storage_StorageKv, comes from master: specs/storage/kv.t27 changed there after it was sealed (fix: #12386), and this branch touches neither file. compiler.rs is still 40 added / 40 deleted against master and matches bootstrap/stage0/FROZEN_HASH. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * chore(seal): re-seal t27f frame_render after merging master (Refs #12296, Refs #9367) Merging b1a5857 of origin/master conflicted in one seal file, t27f_frame_render. It took master's version and was re-sealed with the cast-widening emitter, so only gen_hash_verilog (plus built_by and sealed_at) differs from master. tri seals drift listed nothing else. compiler.rs is still 40 added / 40 deleted against master and matches bootstrap/stage0/FROZEN_HASH. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * chore(seal): re-seal t27os provider_profile after merging master (Refs #12296, Refs #9367) Master's b1a5857 brought in the provider_profile spec with a seal made by the master emitter. Its gen_hash_verilog moves with the cast-widening emitter, so it was re-sealed; only gen_hash_verilog (plus built_by and sealed_at) differs from master. The FpgaHdmiGrab seal is left alone: it was sealed on 2026-10-20 and its spec_hash no longer matches hdmi_grab.t27 on master itself, which this branch does not touch. compiler.rs is still 40 added / 40 deleted against master and matches bootstrap/stage0/FROZEN_HASH. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * chore(seal): re-seal four specs after merging master (Refs #12296, Refs #9367) Merging origin/master into the branch conflicted in three seal files (analog_AnalogSarComparator, analog_AnalogSarComparatorQ, t27os_T27osAgentParts). The master versions were taken and the specs re-sealed with the cast-widening emitter. tri seals drift also listed t27os/hot_reload, whose only moved hash is gen_hash_verilog. Against master only gen_hash_verilog (plus built_by and sealed_at, and the nested import spec_hash of sar_comparator_q and agent_parts) differs. The doctor, glass_window, lab_publish, pty_server and receipt_name seals moved in every hash, so they are master's stale seals and are left alone. compiler.rs is still 40 added / 40 deleted against master and matches bootstrap/stage0/FROZEN_HASH. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * chore(seal): re-seal analog sar_comparator after the second master merge (Refs #12296, Refs #9367) Master's 0fd2a8c changed specs/analog/sar_comparator.t27 and re-sealed it. The merge kept this branch's older seal; master's file was restored and re-sealed with the cast-widening emitter. Against master only gen_hash_verilog (plus built_by and sealed_at) differs, and tri seals drift lists nothing else. compiler.rs is still 40 added / 40 deleted against master and matches bootstrap/stage0/FROZEN_HASH. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * merge: resolve seal artefacts and FROZEN_HASH to master's version * chore(seal): re-freeze compiler.rs and re-seal three wasm specs after merging master (Refs #12296, Refs #9367) Merging origin/master (853a782, with the BRAM-shape emitter change of #12297) conflicted in bootstrap/stage0/FROZEN_HASH and in the seals of fpga/wasm_board_ax7203, fpga/wasm_opcodes and tri/t27b/wasm. The merged compiler.rs hash is recorded in FROZEN_HASH again, and the three seals were taken from master and re-saved with the merged emitter. Against master only gen_hash_verilog (plus built_by and sealed_at) differs in those seals, and tri seals drift lists nothing else. compiler.rs is still 40 added / 40 deleted against master. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * chore(seal): re-seal t27f spec_graph_fold and spec_graph_view after merging master (Refs #12296, Refs #9367) The branch on the remote had taken two master merges while this branch was being fixed. After integrating both, tri seals drift lists four specs. Two of them (t27f/spec_graph_fold and t27f/spec_graph_view) moved only in gen_hash_verilog, which is the cast-widening emitter, and are re-sealed here. The other two (crons/t27os-night-loop and t27os/hive_feed_acceptance) moved in every hash including spec_hash, so they are master's stale seals and are left alone. compiler.rs is still 40 added / 40 deleted against master and matches bootstrap/stage0/FROZEN_HASH. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * chore(seal): re-seal four specs after merging master (Refs #12296, Refs #9367) Merging origin/master (8384eb9) conflicted only in four t27os seals. Earlier merges on this branch had kept stale copies of twelve files that master had since rewritten (wasm_board_ax7203, wasm_opcodes, the fpga verilog and workflow files, the night-loop spec, the census ledgers). This merge takes master's side, so the PR differs from master again only in compiler.rs, its frozen hash, w5_cast_widen and the seals. tri seals drift then lists six specs. Four moved only in gen_hash_verilog, which is the cast-widening emitter, and are re-sealed here: fpga/wasm_board_ax7203, fpga/wasm_opcodes, t27os/release, t27os/statusbar. The other two (crons/t27os-night-loop and t27os/hive_feed_acceptance) moved in every hash including spec_hash, so they are master's stale seals and are left alone. compiler.rs is still 40 added / 40 deleted against master and matches bootstrap/stage0/FROZEN_HASH. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * chore(seal): re-seal claw merge_judge and pr_tools after merging master (Refs #12296, Refs #9367) Master (6b9fa51) re-sealed claw/merge_judge and claw/pr_tools. Both moved only in gen_hash_verilog under this branch's cast-widening emitter, so they are re-sealed here. tri seals drift now lists only crons/t27os-night-loop and t27os/hive_feed_acceptance, which are master's stale seals (every hash moved, including spec_hash) and are left alone. compiler.rs is still 40 added / 40 deleted against master and matches bootstrap/stage0/FROZEN_HASH. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * chore(seal): re-seal t27f scene after merging master (Refs #12296, Refs #9367) Merging origin/master (9a6e4e7) was clean with -X theirs. The PR differs from master only in compiler.rs, its frozen hash, w5_cast_widen and the seals. tri seals drift lists eight specs: specs/t27f/scene moved only in gen_hash_verilog (the cast-widening emitter) and is re-sealed here. The other seven (crons/t27os-night-loop, t27f/a11y_mirror, t27f/hud, t27f/work_graph, t27os/hive_feed_acceptance, t27os/lab_legs, tri/t27b/wasm) moved in spec_hash too, so master's spec changed without a re-seal; they are master's stale seals and are left alone. compiler.rs is still 40 added / 40 deleted against master and matches bootstrap/stage0/FROZEN_HASH. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5.5 <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.
Closes #12347
Closes #12361
What
Spec Guards has been red on master since #4642, at the step that checks each seal still describes what the compiler emits. #4642 added four lines to
specs/tri/pipeline/builder.t27and did not reseal it. As a result,tools/check_seal_currency.pyreports four stale generated-code hashes (rust, zig, c and verilog) in both seal files that name the spec, and every PR opened on master since then inherits this failure (for example #12341, job 121111974641).Two more old PRs merged later the same day and went the same way: #4563 filled empty bodies in
specs/vm/jit_semantics.t27and #4729 did the same inspecs/vsa/packed_vsa.t27, and neither resealed. Once this branch fixed the builder seal, the same step went red on those two specs (job 121116704617).This PR resaves the six seal files that name the three specs:
.trinity/seals/TriBuilder.jsonand.trinity/seals/pipeline_TriBuilder.json.trinity/seals/JitSemantics.jsonand.trinity/seals/vm_JitSemantics.json.trinity/seals/PackedVsa.jsonand.trinity/seals/vsa_PackedVsa.jsonAll of them were written with a
t27cbuilt from master commita6bdfefa5. Each new generated-code hash is exactly the "current" value that CI printed for the failing jobs. The PR edits no spec.The
GitDiffseals that the same step also flags are fixed separately by #12352, because that spec has to change too.Checks
t27c seal --verifyonbuilder.t27,jit_semantics.t27andpacked_vsa.t27: all hashes MATCH.sealed_atandbuilt_byfields. For the other two, the twin files also gain theclosureentries that the current compiler writes on--save.🤖 Generated with Claude Code