Skip to content

specs(port compiler): unify AssembledInstr, LinkSection, LinkedSymbol, HirBoardResources; rename AsmSection, HwType (Closes #7485) - #7490

Merged
gHashTag merged 5 commits into
masterfrom
fix/types-7437-compiler
Oct 8, 2026
Merged

gHashTag merged 5 commits into
masterfrom
fix/types-7437-compiler

Conversation

@gHashTag

@gHashTag gHashTag commented Oct 7, 2026 •

Copy link
Copy Markdown
Owner

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 types counts identical definitions as DUPLICATED, not CONFLICTED.

  • AssembledInstr (AssembledInstr_r_type.t27): label: []const u8 -> &str, as in specs/fpga/assembler.t27.
  • LinkSection and LinkedSymbol (LinkSection_text.t27): name: []const u8 -> &str, and field alignment -> align (9 uses), as in specs/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.t27 owns AsmSection with kind: i8.
  • HwType -> CompilerHwType (HwType_hw_width.t27). specs/fpga/hw_types.t27 owns HwType.

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 of docs/reports/type_conflicts_classified.json (and the verdicts counts), and out of the tables and counts in docs/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.

PR names fixed ledger classified
#7490 compiler 6 110 -> 104 61 DRIFT, 43 DISTINCT
#7491 trios/browseros 11 (+ Entry, never ledgered) 110 -> 99 62 DRIFT, 37 DISTINCT
#7492 trinity/fpga/scripts/tools 9 110 -> 101 61 DRIFT, 40 DISTINCT
#7523 t27b fixture Point, Reply (never ledgered) 110 unchanged
all four 26 + Entry + Reply 84 (byte-identical to the ledger before #7482) 50 DRIFT, 34 DISTINCT

Evidence (Railway t27c lab, master bd3bdcd)

Results of tri types ratchet and tri types classified:

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-rust with exit 0, test-report counts are unchanged, and t27c suite --ratchet --corpus-only is CLEAN (77/77). No sealed spec is touched. Only .t27 files 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

…, 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>
@gHashTag
gHashTag enabled auto-merge (squash) October 7, 2026 11:20
This was referenced Oct 7, 2026
@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-07 12:46:50 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 46
PRs with All Checks Green 4
READY 1
FAILING 46
PENDING 0
NO CHECKS YET 0

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

Seal Status

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

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>
@gHashTag
gHashTag disabled auto-merge October 8, 2026 16:16
@gHashTag
gHashTag changed the base branch from master to shep-tmp-base-7490 October 8, 2026 16:16
@gHashTag
gHashTag changed the base branch from shep-tmp-base-7490 to master October 8, 2026 16:16
@gHashTag gHashTag added ci and removed ci labels Oct 8, 2026
@gHashTag

gHashTag commented Oct 8, 2026

Copy link
Copy Markdown
Owner Author

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. type_conflicts_classified.json and TYPE_CONFLICTS.md are master's text minus the rows of the six names this PR fixes: AsmSection, AssembledInstr, HirBoardResources, HwType, LinkSection and LinkedSymbol. Those are the names in the merge base 20d20c9 that this PR lacks and master still has. The counts were recounted from the rows left: DRIFT 61 -> 55, DISTINCT 41. type_conflicts.json was regenerated with tri types ratchet --bless (102 -> 96), using tri built from the merged tree on the t27c lab. On that tree tri types ratchet is CLEAN (96/96) and tri types classified is OK. The foreign-line budget is 0 lines. The stale base.sha was cleared (#7489): auto-merge was off, the base was flipped to a temporary branch and back to master and checked, the ci label was re-added, the temporary branch was deleted, and then auto-merge was turned back on.

@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-08 16:27:33 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 46
PRs with All Checks Green 4
READY 1
FAILING 46
PENDING 0
NO CHECKS YET 0

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

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=39fa3908f9fd != 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 a6d4e55 into master Oct 8, 2026
33 of 37 checks passed
gHashTag pushed a commit that referenced this pull request Oct 8, 2026
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>
gHashTag pushed a commit that referenced this pull request Oct 8, 2026
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
gHashTag added a commit that referenced this pull request Oct 8, 2026
…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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

types ratchet: compiler.rs ports redefine AssembledInstr, AsmSection, HirBoardResources, HwType, LinkSection, LinkedSymbol (Refs #7437)

2 participants