fix(rust): the serde gate never travelled to gen_enum (+13 accepted, 0 regressions) - #3209
Merged
Merged
Conversation
…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>
Contributor
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>
Contributor
PR DashboardGenerated at: 2026-09-04 23:23:27 UTC
Summary
Seal Status
|
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Contributor
PR DashboardGenerated at: 2026-09-04 23:44:27 UTC
Summary
Seal Status
|
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
This was referenced Sep 4, 2026
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
gHashTag
enabled auto-merge (squash)
September 5, 2026 00:05
Contributor
PR DashboardGenerated at: 2026-09-05 00:05:51 UTC
Summary
Seal Status
|
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.
gen_structwrites the serde derive behind a cargo feature atcompiler.rs:23726.gen_enum, 43 lines below in the same file, wroteserde::Serialize, serde::Deserializeinto a plain derive list. The acceptance recipe compiles--crate-type libwith no--extern serde, so every spec declaring an enum stopped atbefore 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
serde84 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 failingones.
The other three columns are recorded in the
docs/nowentry, including two classeswhose COUNT was refuted while the mechanism stood — those are reported as classes
only, without a number.
Seal
compiler.rsis under the M5 freeze, sobootstrap/stage0/FROZEN_HASHmoves in thissame commit, digest taken with
t27c frozen-digestper FROZEN.md §5 step 3. Step 2asks for a
[GOLD-RING]intent; practice in this tree is otherwise — 1 of the last 30commits touching that file says GOLD-RING and the rest carry
fix(...)with themeasured delta in the subject, which is what this one does.
Closes #3208