fix(ci): fifteen type names, one definition each - #5504
Merged
Merged
Conversation
tri types ratchet failed on master: 15 type names gained another definition. Fourteen come from recent ports under specs/port/; ConfigEntry became visible when #4794 made specs/account/auth.t27 readable. A name with two definitions has no determined domain (#2774), and the ledger is not to be blessed past it (#4612). The newer definition in each pair is renamed inside its own file: BezierCurve->CubicBezier, ConfigEntry->OrgConfigEntry, CounterState->Dup2CounterState, Gate->MetricGate, Issue->NotebookIssue, JtagShiftRegister->ClassifierShiftRegister, ModuleInterface->UartEchoInterface/D6TestInterface, Mpsse->LinkRelayMpsse/MpsseContext, OscillatorState->UartOscillatorState, Path->W365Path/W368Path, Point->RectPoint, Pool->RegistryPool, PullRequest->VerdictPullRequest, RSAKeyPair->SimpleRSAKeyPair, StatusResponse->ServerStatusResponse. For every file all four backends generate the same output before and after, byte for byte, once the new name is mapped back (Verilog also lowercases it into register names); queen-ci-verdict.t27 was refused before and after. AdamWConfig, JitCache and ParseResult no longer conflict; their rows leave the ledger, the classification json and docs/TYPE_CONFLICTS.md. tri types ratchet: CLEAN at 77. tri types classified: OK. auth.t27 is resealed. Refs #5497 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Renaming OscillatorState in uart_echo_top.t27 makes its update_oscillator_chain body name UartOscillatorState, so the two bodies are no longer copies. The duplicate-body ratchet fails when a known group disappears and its row stays, so the row (update_oscillator_chain 2, added in #5501) leaves the ledger in this change. Refs #5497 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
PR DashboardGenerated at: 2026-10-02 01:34:37 UTC
Summary
Seal Status
|
Contributor
PR DashboardGenerated at: 2026-10-02 01:34:39 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 Oct 2, 2026
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.
What
tri types ratchet(Corpus Ratchet, step 2) fails on master: 15 type names gained another definition, and 3 ledger rows no longer conflict.Fourteen of the 15 come from recent ports under
specs/port/.ConfigEntrybecame visible on 2026-09-24, when #4794 madespecs/account/auth.t27readable. The ledger says why this matters: a name with two definitions has no determined domain (#2774). #4612 asked for a rename, not--bless, whenRegexdid the same. This PR does the same for all 15.Renames (newer definition, inside its own file)
The older definition keeps the name in every pair. All new names were unused before.
Proof that only the name moved
For each of the 17 files,
t27c gen,gen-c,gen-rustandgen-verilogwere run on the old and the new text at the same path. After mapping the new name back to the old one, the output is byte-identical in every backend. Verilog also lowercases struct names into register names (point_x->rectpoint_x), so both spellings are mapped.queen-ci-verdict.t27is refused by every backend before and after; it is one of the 15 specs that do not generate (#5497).Ledger and classification
docs/reports/type_conflicts.json:tri types ratchet --blessdrops onlyAdamWConfig,JitCacheandParseResult. 80 -> 77 names;RATCHET: CLEAN.docs/reports/type_conflicts_classified.jsonand the tables indocs/TYPE_CONFLICTS.md: the same three rows are dropped, the counts go to DRIFT 44 / DISTINCT 33, and the AdamWConfig paragraph is in the past tense.tri types classified: OK.specs/account/auth.t27is the only renamed spec with seals. Both were current before; after resealing with thet27cbuilt from this tree,--verifyreports all MATCH.Elsewhere
Against master, the generation failures are the same 15,
check_duplicate_declarationspasses, and the assertionless counts and the corpus-suite summary are identical. One side effect:update_oscillator_chainstops being a duplicate group, because its two bodies now name different types. The duplicate-body ratchet fails when a known group disappears and its row stays, so this PR also drops that row (update_oscillator_chain 2, added by #5501) fromtools/duplicate_bodies_baseline.txt;dupe_scan.pypasses on the branch after merging master.Refs #5497
🤖 Generated with Claude Code