Repository navigation
specs(port compiler): unify AssembledInstr, LinkSection, LinkedSymbol, HirBoardResources; rename AsmSection, HwType (Closes #7485) - #7490
Conversation
…, HirBoardResources; rename AsmSection, HwType (Closes #7485) Part of the types ratchet red on master (#7437). Where a port defines the same record as the spec that owns the name, the fields now match it exactly, so tri types counts a duplicate rather than a conflict. Where the record really differs, the port definition gets a module-unique name and a comment pointing at the owner. The types ledger is not blessed. Refs #7437 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Master moved (Point joined the DISTINCT rows, among others); the type ledgers conflicted. They are recomputed, not merged by hand: - docs/reports/type_conflicts_classified.json and docs/TYPE_CONFLICTS.md: master's text minus the rows of the six names this PR fixes (in the merge base 20d20c9, gone from the PR, still on master): AsmSection, AssembledInstr, HirBoardResources, HwType, LinkSection, LinkedSymbol. Counts recounted from the rows left: DRIFT 61 -> 55, DISTINCT 41. - docs/reports/type_conflicts.json: regenerated with `tri types ratchet --bless` (tri built from this tree on the t27c lab), 102 -> 96 names. `tri types ratchet`: CLEAN (96/96); `tri types classified`: OK. Closes #7485 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Merge shepherd: merged master c893f08 in from master's side (139dfe2, a fast-forward of this branch). The three type ledgers conflicted, and they were recomputed, not merged by hand. |
PR DashboardGenerated at: 2026-10-08 16:27:33 UTC
Summary
Seal Status
|
Master moved (#7490 landed); the type ledgers conflicted. They are recomputed, not merged by hand: - docs/reports/type_conflicts_classified.json and docs/TYPE_CONFLICTS.md: master's text minus the rows of the eleven names this PR fixes (in the merge base 20d20c9, gone from the PR, still on master): AppState, Cli, FileChange, IdentityConfig, LockGuard, Path, RunResult, ToolDefinition, ToolRegistry, Value, Variant. Counts recounted from the rows left: DRIFT 55 -> 50, DISTINCT 41 -> 35. - docs/reports/type_conflicts.json: regenerated with `tri types ratchet --bless` (tri built from master's cli/tri on the t27c lab), 96 -> 85 names. `tri types ratchet`: CLEAN (85/85); `tri types classified`: OK. Closes #7486 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
duplicate-bodies is red on master since #7490; the same three-line bless as #7868, so this PR is green on it now and the line no-ops once #7868 lands. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ScHVrGSr6zZUdwkdC8DR9k
…7864) Duplicate Body Ratchet is red on master (16:45Z, 16:57Z, 17:10Z pushes): three fresh 2-copy groups, LinkSection_text / LinkSection_data / LinkSection_bss. Cause: #7490 (a6d4e55) unified LinkSection in specs/port/bootstrap/src/compiler/LinkSection_text.t27, whose three constructors return byte-identical bodies to specs/fpga/linker.t27's link_text / link_data / link_bss -- the same ELF section facts (.text flags 5, .data flags 3, .bss flags 2, align 4) written as per-module helpers in two places. Both copies are correct and deliberate; the group is ledgered, not deduped. Ledger diff = exactly three lines. Verified with dupe_scan.py on master head 14e1c7b. Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Closes #7485
Refs #7437
Six type names in
specs/port/bootstrap/src/compiler/now have two definitions with different fields.Unified. The port describes the same record as the spec that owns the name, so the fields now match exactly.
tri typescounts identical definitions as DUPLICATED, not CONFLICTED.AssembledInstr(AssembledInstr_r_type.t27):label: []const u8->&str, as inspecs/fpga/assembler.t27.LinkSectionandLinkedSymbol(LinkSection_text.t27):name: []const u8->&str, and fieldalignment->align(9 uses), as inspecs/fpga/linker.t27.HirBoardResources(HirIpCatalog_new.t27):name: []const u8->str, as in HirTernaryRegFile_new.t27, the other port of the same Rust struct.Renamed. The record really differs from the one that owns the name.
AsmSection->CompilerAsmSection(AsmRelocEntry_new.t27).specs/fpga/assembler.t27ownsAsmSectionwithkind: i8.HwType->CompilerHwType(HwType_hw_width.t27).specs/fpga/hw_types.t27ownsHwType.Each rename carries a
//comment naming the owner.Ledger
#7482 blessed these 26 names; the owner chose fixing over blessing (2026-10-07), so this PR fixes its names and removes their ledger rows.
For each name this PR fixes, its rows come out of
docs/reports/type_conflicts.json, out ofdocs/reports/type_conflicts_classified.json(and theverdictscounts), and out of the tables and counts indocs/TYPE_CONFLICTS.md. Nothing else is removed, so the ledger is master's minus exactly this PR's names (Q61). Master was merged in from master's side.Entry, never ledgered)Point,Reply(never ledgered)Entry+ReplyEvidence (Railway t27c lab, master bd3bdcd)
Results of
tri types ratchetandtri types classified:Entry(specs: duplicate test names fixed; 10 ledgered stale seals cleared with the #5084 fixes (Closes #7383) #7386) and NEWReply(t27b: a postfix optional type T? is ?T, 823 -> 824 (Closes #7415) #7462). corpus: judge 26 new type conflicts from the port batches; types ledger 84 -> 110 (Refs #5906) #7482 did not cover either.Entryis left, and specs(port trios, browseros): unify LockGuard; rename 11 port-only types (Closes #7486) #7491 fixes it.Entryis left, and specs(port trios, browseros): unify LockGuard; rename 11 port-only types (Closes #7486) #7491 fixes it. Without specs(t27b conformance): fixture-unique names PostfixPoint and PostfixReply, so the types ratchet sees no new conflict (Closes #7522) #7523,Pointstays conflicted betweenbezier.t27and the t27b fixture. Land specs(t27b conformance): fixture-unique names PostfixPoint and PostfixReply, so the types ratchet sees no new conflict (Closes #7522) #7523 first, or together with this PR.No PR leaves a stale row or adds a conflict of its own. Every red in a single-PR run is already red on master, and another PR in this set fixes it.
Earlier run at d5cefde: all 25 port files pass
gen,gen-verilog,gen-c,gen-rustwith exit 0, test-report counts are unchanged, andt27c suite --ratchet --corpus-onlyis CLEAN (77/77). No sealed spec is touched. Only.t27files and the three ledger documents change, and foreign-budget and own-language pass.The PRs edit neighbouring rows of the same three ledger files. Once one lands, the others may need a mechanical re-merge, which means re-running the row removal on the new master.
🤖 Generated with Claude Code