Skip to content

Promote daObjKm3_Kuruma_c intact translation unit - #2119

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

Promote daObjKm3_Kuruma_c intact translation unit#2119
andrewboudreau merged 1 commit into
mainfrom
cpp/kuruma-intact-tu

Conversation

@andrewboudreau

@andrewboudreau andrewboudreau commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

Promotes the five-function daObjKm3_Kuruma_c unit from per-symbol sources into one production intact C++ translation unit. The compiler now owns D1/D0, InitResources, CleanupResources, RTTI, type name, resource descriptor, SpawnInfo, and vtable; no D2 is emitted. RickshawPlatformBs_Spawn remains an explicit C-linkage ABI seam because the ROM proves the factory boundary but not a natural-new spelling.

Restacked directly onto current main after #2103, #2117, #2104, and #2129 landed. The branch contains only the Kuruma promotion commit.

Fresh exact proof on head 6b9a8bf: 11,088/11,088 source-built functions, 7/7 source-owned data claims, 106/106 modules, zero mismatches, intact-TU storage aliases exact, 570 ROM-data symbols verified, and stock ROM SHA-256 D1506E90EFAE5E2D2CF119926A4AC2A291BD5CA78349D09D5024E1A918C478E8. The generated TU state note is current; 98/98 shadow TUs compile; port references are 405/405; all eight merge-result static gates stay green; attribution reports three consolidations intact with zero changed or lost credit.

No CLAIMS.md, match_attempts.jsonl, or bot dashboard artifacts are included.

@andrewboudreau andrewboudreau added the attribution-override Maintainer accepts this PR's contributor-credit changes; validation reports them as warnings label Aug 31, 2026
@tangos-validator

tangos-validator Bot commented Aug 31, 2026

Copy link
Copy Markdown

✅ PR validation — Passed

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

Full merge validation

Check Result
Committed test merge yes
Byte-verified functions 10,723 / 11,347 (94.50%, -4)
Byte-verified code bytes 1,995,340 / 2,211,124 (90.24%, -200)
Claimed, not byte-verified 494 functions, 110,340 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 +336
Contributor credit 0 added, 3 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 570 symbol(s) exact, 162 partial, 5 differ

Contributor credit moved (3)

Function Source Before After
ov047:0x021114ac src/_ZN17daObjKm3_Kuruma_c16CleanupResourcesEv.cpp -> src/actors/daObjKm3_Kuruma_c.cpp lunavyqo github-actions[bot]
ov047:0x021114c0 src/_ZN17daObjKm3_Kuruma_c13InitResourcesEv.cpp -> src/actors/daObjKm3_Kuruma_c.cpp lunavyqo github-actions[bot]
ov047:0x021114d4 src/RickshawPlatformBs_Spawn.c -> src/actors/daObjKm3_Kuruma_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 494 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 (3 changed, 0 lost -- src/actors/daObjKm3_Kuruma_c.cpp: lunavyqo -> github-actions[bot]; src/actors/daObjKm3_Kuruma_c.cpp: lunavyqo -> github-actions[bot]; src/actors/daObjKm3_Kuruma_c.cpp: tangosdev -> github-actions[bot]); 5 address range(s) left the byte-verified set while enrolled totals held steady: ov047:0x021113f8-0x02111448, ov047:0x02111448-0x021114ac, ov047:0x021114ac-0x021114c0, ov047:0x021114c0-0x021114d4, ov047:0x021114d4-0x02111510; 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/daObjKm3_Kuruma_c.cpp _ZN17daObjKm3_Kuruma_cD1Ev + _ZN17daObjKm3_Kuruma_cD0Ev + _ZN17daObjKm3_Kuruma_c16CleanupResourcesEv + _ZN17daObjKm3_Kuruma_c13InitResourcesEv + RickshawPlatformBs_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 force-pushed the tools/partitioned-no-split-alias branch from 0390b24 to 7194700 Compare September 1, 2026 01:47
@andrewboudreau
andrewboudreau force-pushed the tools/partitioned-no-split-alias branch from 7194700 to 254fe53 Compare September 1, 2026 01:57
@andrewboudreau
andrewboudreau marked this pull request as draft September 1, 2026 02:06
@andrewboudreau

Copy link
Copy Markdown
Collaborator Author

Temporarily draft after repairing the #2117 root. I replayed only the Kuruma commit onto current main plus clean #2117 and ran the full ROM gate. The strict control passed 106/106 with the stock SHA, but the candidate was correctly rejected: current main lacks the #2103 nontextSectionOrder implementation, so Kuruma RTTI and resource sections reorder and produce wrong-symbol and wrong-destination relocation failures. I did not push that invalid candidate; it is preserved locally as wip/kuruma-main-root-needs-section-order-20260901. Once the #2103 section-order tooling lands, I will re-cut Kuruma on the clean root and rerun the complete ROM proof.

Base automatically changed from tools/partitioned-no-split-alias to main September 1, 2026 04:17
@andrewboudreau

Copy link
Copy Markdown
Collaborator Author

The former draft blocker is cleared: #2103 and #2117 are now in main. I replayed only the Kuruma promotion onto current main, resolved attribution semantically, regenerated the TU state note, and reran the complete proof on head 0804918.

Fresh results: canonical ROM SHA, 11,088/11,088 functions, 7/7 source-data claims, 106/106 modules, zero mismatches, 98/98 TUs, 405/405 port refs, and 8/8 merge-result static gates. The PR is ready for fresh independent validation.

@andrewboudreau
andrewboudreau marked this pull request as ready for review September 1, 2026 09:30
@andrewboudreau

Copy link
Copy Markdown
Collaborator Author

The prior private validation passed, but #2129 merged while it was running and made that head conflict with main. I did not merge the stale head.

I rebased the single Kuruma commit onto post-Waterfall main c9453b4, retained Waterfall ledger state, regenerated the TU state note, and reran the complete proof. New head 6b9a8bf passes the canonical ROM build: 11,088/11,088 functions, 7/7 source-data claims, 106/106 modules, zero mismatches, 570 verified ROM-data symbols, 98/98 TUs, 405/405 port refs, and 8/8 merge-result static gates. Awaiting fresh private validation on this exact head.

@andrewboudreau
andrewboudreau merged commit 5ded36b into main Sep 1, 2026
9 checks passed
@andrewboudreau
andrewboudreau deleted the cpp/kuruma-intact-tu branch September 1, 2026 12:00
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