Promote daObjKm3_Kaitendai_c intact translation unit - #2125
Conversation
✅ PR validation — PassedCommitted merge passes; 4 contributor credit reassignment(s) noted, not a blocker. Full merge validation
Contributor credit moved (4)
Byte-verified means the range carries Warnings: contributor attribution changed, not a blocker (4 changed, 0 lost -- src/actors/daObjKm3_Kaitendai_c.cpp: tangosdev -> github-actions[bot]; src/actors/daObjKm3_Kaitendai_c.cpp: lunavyqo -> github-actions[bot]; src/actors/daObjKm3_Kaitendai_c.cpp: lunavyqo -> github-actions[bot]; +1 more); 5 address range(s) left the byte-verified set while enrolled totals held steady: ov047:0x021112bc-0x0211130c, ov047:0x0211130c-0x02111370, ov047:0x02111370-0x02111384, ov047:0x02111384-0x021113bc, ov047:0x021113bc-0x021113f8; 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 detailAll 1 changed file(s) compile to the ROM byte-for-byte with correct relocation targets.
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
left a comment
There was a problem hiding this comment.
Recovers the stranded #2111. Verified independently, merging.
#2111 was reviewed and validated but merged into #2109's branch, which was superseded — so the Kaitendai promotion never reached main. This re-cut is the recovery, and it retargeted to main cleanly the moment #2103 landed.
Independently measured, not taken from the body:
premerge, base origin/main @ f7fccf68d0bf, merge tree 81df5cb86656
all 8 static gates pass -> pass
source-coverage info: entries 10814 -> 10811 (-3) consolidation, bytes flat
full build of main + this PR:
source-built functions: 11,088 reproducing: 11,088 mismatching: 0
source-owned data claims: 3 (reproducing 3, mismatching 0)
module fidelity: 106/106 exact, 100.000000%
intact TU gates: dsd modules PASS, zero new symbol errors, storage aliases exact
ROM data from source: 529 verified (527 -> 529, +2 from this TU)
ROM-build analysis: PASS
The -3 on source-coverage is five legacy files collapsing into one TU; code bytes are unchanged, which the 11,088/0 confirms.
One thing I checked and want on the record: I tried to land this without #2103, to avoid the stack. It does not build — _ZTI20daObjKm3_Kaitendai_c and data_ov047_02112334 link at each other's addresses and all eight .data relocations follow the swap. The dependency on #2103's manifest section ordering is real, so the original stacking was correct.
Merging.
Replacement for #2111, which was reviewed and validated but merged into the superseded #2109 branch rather than main. This is the same Kaitendai source promotion re-cut as one commit on the clean #2103 tooling head.\n\nPromotes five legacy functions into one genuine typed C++ translation unit. mwccarm emits D1/D0, RTTI, type name, descriptors, and vtable storage; the manifest keeps inherited RTTI copies exact-externalized and preserves the measured non-text section order.\n\nFresh validation at dedaed4:\n- strict TU text: 5/5 exact with relocation destinations clean\n- full production: 11,088/11,088 functions, 3/3 source-owned data claims, 106/106 modules, zero mismatches, exact stock ROM\n- strict control: 11,060/11,060 and the same stock ROM\n- nine symbol diagnostics identical in control and candidate; zero new errors\n- all 97 C++ TUs compile; port references 405/405\n- header fan-out: one source, zero blocking link failures\n- attribution: four consolidated legacy credits retained; generated state note current\n\nNo claims, attempt-ledger, or dashboard artifacts are included.