TU: fix stale legacy_source extensions, promoting Platform and Warp - #1884
TU: fix stale legacy_source extensions, promoting Platform and Warp#1884andrewboudreau wants to merge 1 commit into
Conversation
`tu_promote` refused ov002/Platform and ov002/Warp with
src/_ZN4WarpD0Ev.c has 0 entries in config/arm9/overlays/ov002/delinks.txt
and the file it wanted is on disk as `.cpp`. The manifest recorded the
extension a function's legacy source had when the entry was written; `.c` to
`.cpp` migrations have landed on main since and nothing updated it. 41 rows
across 20 entries were pointing at a name that no longer exists.
Nothing but tu_promote reads those rows, which is why this sat unnoticed --
and why it read as "the delinks entry is missing" rather than "the manifest
is stale". Corrected only where the sibling extension is actually on disk;
rows whose file is simply gone (the entry was already promoted) are left
alone.
That unblocks two:
* **ov002/Platform**, 11 functions, already in ROM order -- it only needed
the `_ZN7Vector3D1Ev` duplicate row.
* **ov002/Warp**, 8 functions, which needed the same inline-destructor change
as the previous commit's twenty, and then matched in ROM order.
module fidelity: 106/106 exact, 100.000000% of compared bytes
ROM data: 378 verified, 206 partial, 54 differ -- unchanged
19 more hand-placed structor files retired, 19 attribution overrides added.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VregK5ZWRa2NbUcneaprG6
✅ PR validation — PassedCommitted merge introduces no reconstruction or attribution regression. Full merge validation
Byte-verified means the range carries Warnings: 19 address range(s) left the byte-verified set while enrolled totals held steady: ov002:0x020ec388-0x020ec3b8, ov002:0x020ec3b8-0x020ec3fc, ov002:0x020ec3fc-0x020ec404, ov002:0x020ec404-0x020ec408, ov002:0x020ec408-0x020ec410, +14 more; 17 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. |
|
Triage: leaving this open. The working assumption was that #1993 ( #1993 re-derived the 38 stale The two promotions are not:
Both are still under This branch is stale: it sits on top of #1882 -> #1880 -> |
|
Gatekeeper review — keep open. This is NOT superseded by #1993. I checked the coverage rather than assuming it. The #1880 → #1882 → #1884 chain promotes 66 TUs against #1993's 26, and five promotions are uncovered by anything else in the queue: What I need before this can merge, in order:
Do not run If any premise above is wrong, say so on the PR with evidence rather than routing around it — I have been corrected three times today and each correction was right. |
|
Status note, so nobody spends a validator slot chasing this. The red That is three days old. It predates #2007's re-bank, #2011, and today's merges (#1991, #1978, #2000, #1985). This is almost certainly the base-desync shape rather than a real backslide: a PR cut before a re-bank merges against a baseline that predates it and inherits the red. The fix for that is to merge Two corrections to what I told people earlier, both mine and both wrong:
Why this is parked rather than refreshed#1993 is the restack of this chain, and it is the queue chokepoint: it regenerates Order I am walking: #2002 → #2005 → #1995 → #1993, then re-assess what of this chain is still unlanded. Current signal is that the remainder is smaller than the diffstat suggests — a parallel review of #1914 found all 37 of its uniquely-promoted sources already present on Nothing here is closed and nothing is being discarded. Coverage on main is holding at 2,066,772 B built from source, 0 bytes handed back to the cartridge, and I will re-check it after every merge. |
|
Closing — see #1880 for the full reasoning. This sits on #1880/#1882 and inherits the rejected But the stale-
Each one blocks Please re-open it as a fresh PR cut from current main — do not cherry-pick |
Stacked on #1882. Review that one first.
tu_promoterefusedov002/Platformandov002/Warpwith what looked like adelinks problem:
The file is on disk as
.cpp. The manifest recorded the extension eachfunction's legacy source had when the entry was written, and
.c→.cppmigrations have landed on main since. 41 rows across 20 entries point at a
name that no longer exists. Nothing but
tu_promotereads them, which is whythis went unnoticed — and why it reported as a missing delinks entry rather
than a stale manifest.
Corrected only where the sibling extension is actually on disk. Rows whose
file is simply gone (the entry was already promoted, so its legacy sources
were deleted) are left alone.
That unblocks two:
needed the
_ZN7Vector3D1Evduplicate row.matched in ROM order.
19 more hand-placed structor files retired.
layout_checkclean ·port_refcheck397/397 ·check_dead_referencesno new·
check_src_tu_compiles88/88 ·pytest tools/test_tubuild.py36 passed ·prepush_attribution0 changed, 0 lost.🤖 Generated with Claude Code
https://claude.ai/code/session_01VregK5ZWRa2NbUcneaprG6