Skip to content

fix(rust): the serde gate never travelled to gen_enum (+13 accepted, 0 regressions) - #3209

Merged
gHashTag merged 4 commits into
masterfrom
serde-gate-did-not-travel-to-gen-enum
Sep 5, 2026
Merged

gHashTag merged 4 commits into
masterfrom
serde-gate-did-not-travel-to-gen-enum

Conversation

@gHashTag

@gHashTag gHashTag commented Sep 4, 2026

Copy link
Copy Markdown
Owner

gen_struct writes the serde derive behind a cargo feature at compiler.rs:23726.
gen_enum, 43 lines below in the same file, wrote serde::Serialize, serde::Deserialize into a plain derive list. The acceptance recipe compiles
--crate-type lib with no --extern serde, so every spec declaring an enum stopped at

error[E0433]: failed to resolve: use of undeclared crate `serde`

before any of its own code was read. The comment above the struct-side gate already
names the defect it was written for — "measured as the first error in 23 of 38
sampled specs — the largest single cause in the Rust column"
. The remedy never
travelled.

Measured over all 650 corpus specs, by name

before after
rustc accepts 224 237
unblocked +13
regressions 0
still failing on serde 84 0

84 was a first-error count; 13 is an unblocking count. Errors queue — clearing the
first cause in 84 specs clears 13 outright and leaves 71 reporting whatever stood
behind it. Both numbers are true and they answer different questions; quoting 84 as
the yield would have been wrong.

Provenance

Found by fanning four agents across the four backend generate-to-accept gaps, then
having two independent verifiers try to refute each. The Rust class was upheld by
both (one on cause, one on population). It discriminates perfectly: the ungated form
^#[derive(...serde:: occurs in 0 of 224 passing files and 84 of 357 failing
ones.

The other three columns are recorded in the docs/now entry, including two classes
whose COUNT was refuted while the mechanism stood — those are reported as classes
only, without a number.

Seal

compiler.rs is under the M5 freeze, so bootstrap/stage0/FROZEN_HASH moves in this
same commit, digest taken with t27c frozen-digest per FROZEN.md §5 step 3. Step 2
asks for a [GOLD-RING] intent; practice in this tree is otherwise — 1 of the last 30
commits touching that file says GOLD-RING and the rest carry fix(...) with the
measured delta in the subject, which is what this one does.

Closes #3208

…0 regressions)

gen_struct writes the serde derive behind #[cfg_attr(feature = "serde", ...)] at
compiler.rs:23726. gen_enum, 43 lines below in the same file, wrote
serde::Serialize, serde::Deserialize into a plain derive list. The acceptance
recipe compiles --crate-type lib with no --extern serde, so every spec declaring
an enum stopped at

    error[E0433]: failed to resolve: use of undeclared crate `serde`

before any of its own code was read. The comment above the struct-side gate names
the defect it was written for -- "the largest single cause in the Rust column" --
and the remedy did not travel.

Measured over all 650 corpus specs, by name, same recipe as `t27c corpus`:
rustc accepts 224 -> 237, +13 unblocked, 0 regressions, and 0 specs still fail on
serde where 84 did.

84 was a FIRST-ERROR count and 13 is an UNBLOCKING count. Errors queue: clearing
the first cause in 84 specs clears 13 outright and leaves 71 reporting what stood
behind it. Both are true; they answer different questions.

The seal moves because compiler.rs is under the M5 freeze -- FROZEN.md §5 step 3,
digest taken with `t27c frozen-digest`.

Closes #3208

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

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-04 23:12:46 UTC

Summary

Status Count
Total Open PRs 13
PRs with Failing Checks 11
PRs with All Checks Green 2
READY 0
FAILING 11
PENDING 0

Seal Status

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

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

`tri seals drift --fix`. The gate names re-sealing as the right repair for
gen-drift and baselining as the wrong one, and it asks that the acceptance
columns be read first, because re-sealing is a statement that the new output is
the one you want. They were read: rustc 224 -> 237, +13 unblocked, 0 regressions,
0 specs still failing on serde.

The diff's shape confirms the change is confined: only `gen_hash_rust` (142 pairs)
and `sealed_at` move. `gen_hash_c`, `gen_hash_verilog` and `gen_hash_zig` are
untouched, as they must be for a change to the Rust emitter alone.

Closes #3208

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

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-04 23:23:27 UTC

Summary

Status Count
Total Open PRs 13
PRs with Failing Checks 11
PRs with All Checks Green 2
READY 0
FAILING 11
PENDING 0

Seal Status

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

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-04 23:44:27 UTC

Summary

Status Count
Total Open PRs 13
PRs with Failing Checks 11
PRs with All Checks Green 2
READY 0
FAILING 11
PENDING 0

Seal Status

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

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@gHashTag
gHashTag enabled auto-merge (squash) September 5, 2026 00:05
@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-05 00:05:51 UTC

Summary

Status Count
Total Open PRs 14
PRs with Failing Checks 11
PRs with All Checks Green 3
READY 0
FAILING 11
PENDING 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=3c8c4b4c629b != 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 ba338e0 into master Sep 5, 2026
29 of 30 checks passed
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.

The serde gate in gen_struct never travelled to gen_enum: 84 first errors, 13 specs unblocked

1 participant