Skip to content

fix(specs): the 8 specs the gen typecheck gate would refuse (Refs #6446) - #6566

Merged
gHashTag merged 2 commits into
masterfrom
claude/t27c-gate-specs
Oct 5, 2026
Merged

gHashTag merged 2 commits into
masterfrom
claude/t27c-gate-specs

Conversation

@gHashTag

@gHashTag gHashTag commented Oct 5, 2026 •

Copy link
Copy Markdown
Owner

Refs #6446

On the Railway lab, the held gen typecheck gate (branch claude/t27c-gen-typecheck-gate) stopped 8 corpus specs from generating. This PR fixes each one at the source, so the gate would cost nothing. The PR contains only .t27 specs, tool-written seals and ledger data, and prose. No hand-written non-t27 code.

What changed

Spec typecheck refused Fix
numeric/gft64, gft128, gft256, gft512, gft1024 EXP_OFFSET / OFFSET_MAX declare u32 for 12- to 187-digit values (#2925) Values unchanged (each is (3^E_t - 1)/2 and its double). The type is now the storage word formats_catalog.t27 already names for the rung: u64, u128, u256, u512, u1024. The same change applies to is_finite's parameter. Tests pass under zig (2/2 each).
ar/composition Rust match in execute_ar_component, with tuple-assigning arms (#5949) A switch that returns each arm's (result, steps) pair
git/diff 21 Rust match blocks over Ok/Err of Command::new("git") (#5949) Rewritten in the git/status.t27 idiom (run the command, check exit_code, parse), using pure parse_name_status / parse_numstat / summarize functions. The tests check those on literal git output.
port/tools/check_conflict_markers _git (4 params) called with 7 args The git flags are passed as one argument string

Ledger and seals

Lab measurement (master f2262f3 + this diff, master t27c)

Parse: 1274 passed, 0 failed
Typecheck: 1274 passed, 0 failed
Gen Zig: 1274 passed, 0 failed
Gen Rust: 1274 passed, 0 failed
Gen Verilog: 1265 passed, 9 failed
Gen C: 1274 passed, 0 failed
RATCHET CLEAN -- no unexpected failures, passes, expiries, discard drift, or gate drift
seal-currency OK, seal-coverage OK
OK: 1340 specs, 1339 generate, 1 known-broken in specs_generate_baseline.txt
tri misread: generated for 1274 of 1274 spec(s), 0/0/0, Nothing found

The 9 gen-verilog failures are port specs with a local string array ([N][]const u8). They fail the same way with or without the gate and stay ledgered under #5549.

Two more refused specs outside specs/ (commit 726506c)

Running the gate over the whole tree (check_specs_generate.py, check_seal_coverage.py) turned up two more refused specs:

  • compiler/codegen/verilog/codegen.t27 called the method mangle_verilog_name(self, name) without self.. The 3 call sites are now self.mangle_verilog_name(..).
  • contrib/backend/zig/legacy/main_zig_handwritten.t27 made 14 calls that passed a format and args to the 1-parameter printError. They now call the spec's own printErrorFmt.

Both typecheck and generate on every backend on the lab. Their 3 seals were re-saved there (verilog_codegen, verilog_verilog_codegen, legacy_main_zig_handwritten).

Files

Kind Files
.t27 the 8 specs above, plus compiler/codegen/verilog/codegen.t27 and contrib/backend/zig/legacy/main_zig_handwritten.t27
Tool-written data 12 .trinity/seals/*.json (t27c seal --save on the lab); suite_expectations.json (JSON filter dropping 7 entries)
Prose docs/now/2026-10-05-gate-refused-specs-6446.md
Hand-written non-t27 none

🤖 Generated with Claude Code

gft64..gft1024 declare their offsets in the storage word the formats
catalog names (u64..u1024) instead of u32; ar/composition returns a
switch instead of a Rust match; git/diff is rewritten in the status.t27
idiom with pure parsers under test; check_conflict_markers calls _git
with its four parameters. 9 seals re-saved on the Railway lab; 7
typecheck ledger entries removed (84 -> 77). Lab: typecheck 1274/1274,
RATCHET CLEAN, tri misread 0/0/0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-05 17:12:21 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 40
PRs with All Checks Green 10
READY 9
FAILING 40
PENDING 0
NO CHECKS YET 0

These columns do not partition: 9 + 40 + 0 + 0 = 49, and there are 50 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=9f2c8a4829f6 != 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).

…ain (Refs #6446)

compiler/codegen/verilog/codegen.t27 calls mangle_verilog_name as a method;
contrib/backend/zig/legacy/main_zig_handwritten.t27 sends its 14 formatted
errors through printErrorFmt instead of the 1-parameter printError. Both
typecheck and generate on the Railway lab; 3 seals re-saved there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-05 17:23:33 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 41
PRs with All Checks Green 9
READY 8
FAILING 41
PENDING 0
NO CHECKS YET 0

These columns do not partition: 8 + 41 + 0 + 0 = 49, and there are 50 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=9f2c8a4829f6 != 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).

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