Skip to content

t27c: fix @splat tuple emission; reseal 385 corpus gen-zig seals (Closes #13625) - #13628

Open
gHashTag wants to merge 7 commits into
masterfrom
lane/reseal-genhash-sweep
Open

gHashTag wants to merge 7 commits into
masterfrom
lane/reseal-genhash-sweep

Conversation

@gHashTag

@gHashTag gHashTag commented Nov 13, 2026 •

Copy link
Copy Markdown
Collaborator

Root cause

PR #13595 changed gen-zig to emit @splat(.{ 9.0 }) (a one-element tuple) instead of @splat(9.0) for one-element array-literal repeat elements. zig 0.16 rejects the tuple form, so every seal whose gen-zig output contains that pattern went stale: the PR-only spec-guards gate (seal currency) failed on every PR.

Fix

bootstrap/src/compiler.rs gains fn splat_scalar, which unwraps .{ X } / { X } to its scalar for @splat; applied at all three @splat emission sites. bootstrap/stage0/FROZEN_HASH updated to the new sha. No --force anywhere; reference toolchain only (zig 0.16.0 via homebrew zig@0.16).

Reseal sweep (before/after)

Verification

  • python3 tools/check_seal_coverage.py: the only failures are pre-existing delete/delete dangling cases (seals whose specs were already removed on master); no gen-drift introduced by this PR.
  • python3 tools/dupe_scan.py: exit 0, no new duplicate groups vs master; baseline untouched.
  • tri seals sync-twins: 503 already consistent, 0 seal files written.
  • Re-run of the stale check: 0 stale beyond the refused set.

Closes #13625. Refs #13595, #13627, #5980.


Note

Medium Risk
Changes bootstrap codegen and hundreds of seal fingerprints; remaining blocked specs mean not all gen-zig output is validated.

Overview
Fixes gen-zig emitting @splat(.{ x }) for one-element repeats, which Zig 0.16 rejects, by unwrapping tuple-ish repeat values to scalars before @splat (via splat_scalar in bootstrap/src/compiler.rs) and bumping bootstrap/stage0/FROZEN_HASH.

The bulk of the diff reseals the Trinity corpus: updated gen_hash_zig, sealed_at, built_by (t27c-bootstrap@0.5.2+b339f8ae9), and the shared test_runner toolchain hash across ML, analog, tri, and related modules. A few seals now record blocked zig test status where generated code still does not compile; ZigArityOneTypedLiteral moves from blocked to 4 passing tests. New blog-related seal entries appear under .trinity/seals/, and some seals refresh closure spec_hash values where upstream specs changed.

Reviewed by Cursor Bugbot for commit d36d194. Bugbot is set up for automated code reviews on this repo. Configure here.

@cursor

cursor Bot commented Nov 13, 2026

Copy link
Copy Markdown
Contributor

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: 3c9949a3-febf-4528-9bcf-f99e8d95bf21)

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-11-13 04:58:36 UTC

Summary

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

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

Seal Status

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

@cursor

cursor Bot commented Nov 13, 2026

Copy link
Copy Markdown
Contributor

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: ae31c6ab-72b1-4465-9301-05f72381f919)

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-11-13 05:20:20 UTC

Summary

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

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

Seal Status

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

@cursor

cursor Bot commented Nov 13, 2026

Copy link
Copy Markdown
Contributor

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: a090bb75-c1a6-43cb-93e3-eb11f0f2642e)

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-11-13 05:42:11 UTC

Summary

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

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

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=64d052690905 != 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 force-pushed the lane/reseal-genhash-sweep branch from 926f50c to 44a20d8 Compare November 13, 2026 07:50
@cursor

cursor Bot commented Nov 13, 2026

Copy link
Copy Markdown
Contributor

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: 185f2086-88d7-4d18-99dd-539488dee15c)

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-11-13 07:51:07 UTC

Summary

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

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

Seal Status

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

@cursor

cursor Bot commented Nov 13, 2026

Copy link
Copy Markdown
Contributor

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: b4fdea36-13f3-42af-b6a4-f7bf89eebd2e)

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-11-13 08:09:32 UTC

Summary

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

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

Seal Status

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

@cursor

cursor Bot commented Nov 13, 2026

Copy link
Copy Markdown
Contributor

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: 08626a9c-7be0-46bc-97b2-7f3339b41df9)

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-11-13 08:19:34 UTC

Summary

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

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

Seal Status

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

)

- Refactor splat_scalar logic into specs/compiler/splat_scalar.t27 with tests, replacing
  compiler.rs helper, reducing foreign lines net-zero (+14/-14)
- Generate and seal the new spec; add elf.t27/wasm.t27 to specs_generate_baseline.txt
  (master pre-existing typecheck refusals)
- Fix @Splat() emission for empty string literals: [""; 64] -> @Splat("") (#13625)
- Revert FROZEN_HASH, managed by t27c build

Fixes issues: #13625 refs #13627
…13625)

[""; 64] arrives at the repeat site as txt=";64" -- the parser strips the
quotes -- so the @Splat lowering went out as an empty @Splat(), which Zig
refuses (spec.zig:157: expected 1 argument, found 0; specs/server/project.t27
could not seal). An empty element text can only be the empty string literal,
so the lowering now emits @Splat(""). The splat_scalar unwrap moves fully
behind specs/compiler/splat_scalar.t27 (8 tests); compiler.rs stays
net-negative under the foreign-line budget (16 added, 17 deleted).

Closes #13625
…ts (#13625)

The #[path = "../gen/rust/compiler/splat_scalar.rs"] module needs the
generated file in-tree; it was gitignored and never force-added, so every CI
build refused with 'couldn't find file'. Commit the t27c gen-rust output
byte-exact (L2: generated, not hand-edited).

Closes #13625
…3625)

The checked-in-rust-matches-gen-rust test regenerates each verified spec and
compares bytes; 5 copies carried the pre-fix test count (18 vs 19). Regenerated
with the current t27c, never hand-edited (L2).

Closes #13625
@gHashTag
gHashTag force-pushed the lane/reseal-genhash-sweep branch from 6b07fcd to d36d194 Compare November 13, 2026 08:43
@cursor

cursor Bot commented Nov 13, 2026

Copy link
Copy Markdown
Contributor

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: b303bde9-bbc2-4f9e-872e-9239b306cae2)

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-11-13 08:43:58 UTC

Summary

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

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

Seal Status

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

This branch has not been deployed

No deployments
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.

seals: 4 stale + 2 dangling seals left red on master

1 participant