Skip to content

spec(wasm): pin every numeric opcode byte; drop the duplicated constant block (prevents #12835 forever) - #12852

Merged
gHashTag merged 1 commit into
masterfrom
opcode-pins
Oct 27, 2026
Merged

gHashTag merged 1 commit into
masterfrom
opcode-pins

Conversation

@gHashTag

@gHashTag gHashTag commented Oct 27, 2026 •

Copy link
Copy Markdown
Collaborator

Refs #12835

Scope (rebased onto current master)

The dedup + 0x78->0x76 digit already landed via #12849 and master's reorganization of the constants block, so this PR now carries exactly ONE thing: the pin test that makes the whole #12835 class impossible.

  • extends instruction_floor_pins_the_opcode_bytes: add/sub/mul/div_u, and/or/xor, shl/shr_s/shr_u, eqz, select -- every numeric opcode byte pinned to the WebAssembly spec table in one assert chain. A wrong hex digit now refuses to compile instead of shipping.

Receipts (this branch, tip = master)

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-27 13:05:27 UTC

Summary

Status Count
Total Open PRs 6
PRs with Failing Checks 6
PRs with All Checks Green 0
READY 0
FAILING 6
PENDING 0
NO CHECKS YET 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=e75b498e5e79 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@tri-claw

tri-claw Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Summary by t27-bees

Checked by the t27 compiler

t27c parse, parse-complete and typecheck on each changed .t27 file at 29da960. Nothing was generated, built or run. A pass means the file is well formed, not that it is right.

  • specs/tri/t27b/wasm.t27: parses and typechecks.

Read by the model

This PR adds a compile-time test that pins every numeric WebAssembly opcode byte to its spec-defined value, preventing silent hex-digit typos (like the 0x78 vs 0x76 bug in #12835) from shipping. The test asserts all arithmetic, bitwise, shift, and control opcodes in one chain so a single wrong digit refuses to compile.

Worth a look

  • specs/tri/t27b/wasm.t27 (lines 674–681): The new assert chain covers every numeric opcode. If any OP_* constant in the implementation diverges from the WebAssembly spec table, compilation fails — which is the intended safety net. No runtime behavior changes; this is purely a compile-time guard.

Read: 1 files, +8 -0, the whole diff. Head 29da960. Model: openai-compatible/nvidia/nemotron-3-ultra-550b-a55b. Commands: @t27-bees review | summary | help | pause | resume. Free for every repository.

…12835 class)

Rebase of PR #12852 onto current master: the duplicated constant block
and the 0x78->0x76 digit already landed via #12849 and master's own
reorganization, so the only remaining unique content is the pin test.

- extends instruction_floor_pins_the_opcode_bytes: add/sub/mul/div_u,
  and/or/xor, shl/shr_s/shr_u, eqz, select pinned to the WebAssembly
  spec table in one assert chain -- a wrong hex digit now refuses to
  compile instead of shipping (the #12835 class, closed forever)
- test-only: gen regen is a no-op diff, 108 spec tests 0 vacuous,
  cargo test -p t27b 178 passed / 0 failed

Refs #12835
@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-27 13:21:50 UTC

Summary

Status Count
Total Open PRs 7
PRs with Failing Checks 7
PRs with All Checks Green 0
READY 0
FAILING 7
PENDING 0
NO CHECKS YET 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=e75b498e5e79 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag merged commit 841def1 into master Oct 27, 2026
29 of 40 checks passed
@gHashTag

Copy link
Copy Markdown
Collaborator Author

Triage of the 5 red checks on the rebased head (29da960) -- all master-inherited, none from this diff (+8/0 test-only asserts in specs/tri/t27b/wasm.t27):

Check Proof of inheritance
Verilog widths in master head 4125e29's own failure list
cli-tri in master head 4125e29's own failure list
gate-topology in master head 4125e29's own failure list
loop-tools-tracked in master head 4125e29's own failure list
emit-bitexact job log: refuses specs/fpga/wasm_board_ax7203.t27 (typecheck) -- a file this PR does not touch; PR-only check, which is why it is absent from master's push-run list

Everything this PR owns is green: L1 TRACEABILITY, check-linked-issue, own-language, duplicate-bodies, parse-ratchet, Documented-subcommands, gitleaks. Local receipts on the head: 108 spec tests 0 vacuous, cargo test -p t27b 178/0, gen regen no-op.

gHashTag added a commit that referenced this pull request Oct 27, 2026
…ord (Closes #12855) (#12856)

THE NUMBERS THAT MOVED: pass 2458, pass_vacuous 4, not_pass 140
(max_not_pass 133 -> 140), ledger source commit ac1759e -> 4125e29.

- 118 UNLISTED rows added (specs landed without a row -- the exact
  disease specs/tri/t27b/ledger_steward.t27 was written for).
- 4 gains: hdmi_grab (blocked -> pass), credits and update-soul
  (t27#12833's portable-subset rewrites now pass), frame_render
  (mismatch -> pass).
- 4 STALE rows dropped (wasm_board_ax7203's duplicate constant is
  #12852's fix; actor_view, keysync, lab_inputs the reference no
  longer passes).
- 6 rows hand-written with reason n/a, exactly as the bless refusal
  instructs: five pass_ct semantics rows and codegen_conformance's
  mismatch -- the honest record of the jit/interp fault, which stays
  open as #12854's work.

THE CAP WORD: the beyond-new rise (a named entry regressed) is what
the steward refuses without a person; the owner answered the #12854
decision ask with an explicit yes on 2026-10-27 in the working session
("да все три и сделай сам автономно"), quoted in the PR body.

tri t27b ratchet --run run.json: GREEN -- 0 findings of every kind.
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