Reconstruct dPathLiftActor_c identity and Carpet TU - #2005
Conversation
✅ PR validation — PassedCommitted merge passes; 1 contributor credit reassignment(s) noted, not a blocker. Full merge validation
Contributor credit moved (1)
Byte-verified means the range carries Warnings: contributor attribution changed, not a blocker (1 changed, 0 lost -- src/_ZN16dPathLiftActor_c9AfterClsnEi.cpp: tangosdev -> andrewboudreau). Per-file link-check detailAll 12 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. |
Carries origin/main through the restacked #2000. Same two generated files conflicted and are resolved the same way: - config/converted-baseline.json: REGENERATED with the post-#2007 tiers.py (tools/tiers_ratchet.py --update), never by side or key union. Count 2552 = the parent branch's 2559 minus the seven per-symbol files this PR's ov070/daKrpa_c promotion absorbs. All seven are classified "MOVED -- absorbed into src/actors/daKrpa_c.cpp" by classify_missing(), that file exists in this tree, and all seven already had rows in config/converted-backslide-exceptions.jsonl from this branch's own earlier run, so no duplicate rows were added. - notes/cpp-tu-current-state.md: regenerated with tools/cpp_tu_state.py --write-note; --check-note is clean. No source file, delinks entry, or byte changed in this merge. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WdCK1xgrJdiJzPCh3bAJfQ
Drops this branch's two redundant daObjAbuku_c backslide rows in favour of #2011's authoritative pair (the union merge driver had produced one of each), and re-regenerates config/converted-baseline.json from the parent branch's 2559 with tools/tiers_ratchet.py --update. Count 2552 = 2559 minus the seven per-symbol files this PR's ov070/daKrpa_c promotion absorbs. All seven are classified "MOVED -- absorbed into src/actors/daKrpa_c.cpp by TU promotion (ov070/daKrpa_c)" by the tool's own classify_missing(); that file exists and is git-tracked here. Zero genuine removals, and all seven already had rows from this branch's earlier run, so no duplicate rows were added. notes/cpp-tu-current-state.md regenerated; --check-note clean. No source file, delinks entry, or byte changed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WdCK1xgrJdiJzPCh3bAJfQ
Carries origin/main through the restacked #2000 and #2002. - config/converted-baseline.json: this PR RENAMES rather than absorbs, so it is resolved by carrying the three PathLift -> dPathLiftActor_c key renames onto the parent branch's 2552 set and then regenerating with tools/tiers_ratchet.py --update. That yields +1 / -0 and count 2553: zero removals and zero backslide rows, which is the honest reading. Regenerating WITHOUT the key rename first would have reported the three paths as "GONE -- not a tracked source file any more" and demanded a --reason, which would have logged a rename as a readability backslide. git itself scores them as renames (R076/R059/R061), all three destinations exist and are tracked, and all three are CONVERTED in the new set, so no readability was lost. This matches how this branch already handled the D0/D1 pair against the older baseline. - notes/cpp-tu-current-state.md: regenerated with tools/cpp_tu_state.py --write-note; --check-note is clean. No source file, delinks entry, or byte changed in this merge. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WdCK1xgrJdiJzPCh3bAJfQ
Summary
daObjRcCarpet_cas one genuine compiler-owned shadow TUdPathLiftActor_cidentity across symbols, headers, consumers, and TU manifestsdPathLiftActor_cas a 22-function genuine C++ shadow TU with organic destructor pair, initializer, RTTI, vtable, and member-function pointersVerification
dPathLiftActor_c: 22/22 text exact; objisolate and relocation destinations cleandaObjRcCarpet_c: 9/9 exact;daObjPathLift_c: 8/8 exactblind: 0Promotion state
dPathLiftActor_cintentionally remains shadow-only: mwcc emits the D1/D0 and six PMF.datasections in a non-retail physical order, so the manifest licenses none of that output.daObjRcCarpet_calso remains shadow-only. Its nine text functions and each named data record verify individually, but an intact-object probe with #2001 places the resource table before the class RTTI while retail requires RTTI first. The manifest cannot conceal that physical section-order difference; source-order reconstruction continues separately.