Skip to content

Promote daObjKm1_Dorifu_c intact translation unit - #2120

Merged
andrewboudreau merged 1 commit into
mainfrom
cpp/km1-dorifu-intact-tu
Sep 1, 2026
Merged

Promote daObjKm1_Dorifu_c intact translation unit#2120
andrewboudreau merged 1 commit into
mainfrom
cpp/km1-dorifu-intact-tu

Conversation

@andrewboudreau

@andrewboudreau andrewboudreau commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

Promotes daObjKm1_Dorifu_c from five one-function sources plus its shadow TU into one genuine production C++ translation unit. The real typed header now drives the class hierarchy, and mwccarm owns D1/D0, InitResources, CleanupResources, RTTI, type name, and vtable; the retail object emits no D2. StairsBdw_Spawn and the descriptor/resource tables remain explicit C ABI seams where their external linkage is part of the binary contract.

Fresh post-#2119 restack: head 9296b1b on main a6c2ece. Exact proof: 5/5 text contributions (460 bytes), 256/256 TU data bytes, 52/52 relocations, 11,088/11,088 source-built functions, 8/8 source-owned data claims, 106/106 exact modules, zero mismatches, exact storage aliases, and canonical stock ROM SHA-256 D1506E90EFAE5E2D2CF119926A4AC2A291BD5CA78349D09D5024E1A918C478E8. Static merge simulation is 8/8 green; TU compatibility, state-note, attribution, affected-header, port references (405/405), and shadow-TU compile (98/98) gates pass.

@tangos-validator

tangos-validator Bot commented Sep 1, 2026

Copy link
Copy Markdown

✅ PR validation — Passed

Committed merge passes; 5 contributor credit reassignment(s) noted, not a blocker.

Full merge validation

Check Result
Committed test merge yes
Byte-verified functions 10,719 / 11,347 (94.47%, -4)
Byte-verified code bytes 1,995,008 / 2,211,124 (90.23%, -332)
Claimed, not byte-verified 498 functions, 110,672 bytes (+4)
Perfect source moves 0 R100
Enrolled ranges (delinks complete) 11,059 functions, 2,053,148 bytes (92.86%, +0) -- differs from byte-verified by +340
Contributor credit 0 added, 5 changed, 0 lost
Relocation check 5 checked; 5 VERIFIED
Port reference check 405 checked; 0 stale
Module fidelity 106/106 exact; 100.000000% compared bytes
Code linked from verified source 11,088 functions, 2,067,148 bytes (93.49%)
Module bytes from source 2,067,148 / 3,049,600 (67.8%); 811,492 (26.6%) are data no delink entry reaches
ROM data reproduced from source 572 symbol(s) exact, 162 partial, 5 differ

Contributor credit moved (5)

Function Source Before After
ov043:0x02111630 src/_ZN17daObjKm1_Dorifu_cD1Ev.cpp -> src/actors/daObjKm1_Dorifu_c.cpp andrewboudreau github-actions[bot]
ov043:0x021116b0 src/_ZN17daObjKm1_Dorifu_cD0Ev.cpp -> src/actors/daObjKm1_Dorifu_c.cpp andrewboudreau github-actions[bot]
ov043:0x02111744 src/_ZN17daObjKm1_Dorifu_c16CleanupResourcesEv.cpp -> src/actors/daObjKm1_Dorifu_c.cpp lunavyqo github-actions[bot]
ov043:0x02111758 src/_ZN17daObjKm1_Dorifu_c13InitResourcesEv.cpp -> src/actors/daObjKm1_Dorifu_c.cpp lunavyqo github-actions[bot]
ov043:0x0211176c src/StairsBdw_Spawn.cpp -> src/actors/daObjKm1_Dorifu_c.cpp tangosdev github-actions[bot]

Byte-verified means the range carries complete in a delinks.txt, so the ROM build compiled it and compared it to the cartridge. The 498 claimed functions have a src/ file named after the symbol with no NONMATCHING banner, and nothing compiles them -- dsd fills their addresses with the ROM's own bytes. Both together are the 11,217 this project calls matched.

Warnings: contributor attribution changed, not a blocker (5 changed, 0 lost -- src/actors/daObjKm1_Dorifu_c.cpp: andrewboudreau -> github-actions[bot]; src/actors/daObjKm1_Dorifu_c.cpp: andrewboudreau -> github-actions[bot]; src/actors/daObjKm1_Dorifu_c.cpp: lunavyqo -> github-actions[bot]; +2 more); 5 address range(s) left the byte-verified set while enrolled totals held steady: ov043:0x02111630-0x021116b0, ov043:0x021116b0-0x02111744, ov043:0x02111744-0x02111758, ov043:0x02111758-0x0211176c, ov043:0x0211176c-0x021117fc; 4 more function(s) now claim a match that nothing compiles; enroll them in a delinks.txt to have the ROM build check them.

Per-file link-check detail

All 1 changed file(s) compile to the ROM byte-for-byte with correct relocation targets.

File Symbol Result Slots checked
src/actors/daObjKm1_Dorifu_c.cpp _ZN17daObjKm1_Dorifu_cD1Ev + _ZN17daObjKm1_Dorifu_cD0Ev + _ZN17daObjKm1_Dorifu_c16CleanupResourcesEv + _ZN17daObjKm1_Dorifu_c13InitResourcesEv + StairsBdw_Spawn ✅ verified 5

The private worker commits a test merge, builds the stock ROM profile, compares every executable module, measures matched and source-built code, checks contributor lineage, and verifies affected relocations. The mod profile is opt-in and is not part of this merge gate.

@andrewboudreau andrewboudreau added the attribution-override Maintainer accepts this PR's contributor-credit changes; validation reports them as warnings label Sep 1, 2026
@andrewboudreau
andrewboudreau force-pushed the cpp/km1-dorifu-intact-tu branch from 2a935ef to be77402 Compare September 1, 2026 01:50
@andrewboudreau
andrewboudreau marked this pull request as draft September 1, 2026 02:06
@andrewboudreau

Copy link
Copy Markdown
Collaborator Author

Temporarily draft because its parent #2119 cannot yet be cleanly rooted on main: Kuruma has a proven dependency on the unmerged #2103 nontextSectionOrder tooling. Km1 source content remains unchanged and its earlier exact verification is preserved, but the current PR graph is not safe to merge. I will restack and revalidate Km1 after Kuruma is re-cut on main plus #2117 and the landed section-order prerequisite.

@andrewboudreau
andrewboudreau force-pushed the cpp/kuruma-intact-tu branch 2 times, most recently from 0804918 to 6b9a8bf Compare September 1, 2026 10:47
Base automatically changed from cpp/kuruma-intact-tu to main September 1, 2026 12:00
@andrewboudreau
andrewboudreau force-pushed the cpp/km1-dorifu-intact-tu branch from be77402 to 9296b1b Compare September 1, 2026 12:18
@andrewboudreau

Copy link
Copy Markdown
Collaborator Author

#2119 is merged, so the prior stack hold is cleared. I recut only the Dorifu promotion commit onto current main and force-with-lease updated this branch to 9296b1b.

Fresh local gates are exact: 11,088/11,088 source-built functions, 8/8 source-owned data claims, 106/106 modules, zero mismatches, canonical ROM SHA, exact TU storage aliases, 8/8 static merge gates, 405/405 port references, 98/98 shadow TUs, and all five attribution consolidations preserved. No dashboard artifacts, claims rows, or match-attempt rows are included.

@andrewboudreau
andrewboudreau marked this pull request as ready for review September 1, 2026 12:19
@andrewboudreau
andrewboudreau merged commit 9e1d301 into main Sep 1, 2026
10 checks passed
@andrewboudreau
andrewboudreau deleted the cpp/km1-dorifu-intact-tu branch September 1, 2026 13:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

attribution-override Maintainer accepts this PR's contributor-credit changes; validation reports them as warnings

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant