Replace 117 overlay edits with repaired function records and retire no-op records - #1802
Merged
foxtacles merged 6 commits intoSep 10, 2026
Merged
Conversation
A census of the effective-source edits (each file compiled with all its edits, with one removed, and with none; objects compared strictly outside the debug sections) found 35 files whose edits change nothing but function bodies: no data, exception table or section-order difference. Their 51 edits are removed and rbit repair re-found the 76 affected functions with newly discovered declaration carriers (73 function records on cheap donors, 1,560 choices tested). A cold verify is byte-identical for all three targets with a clean authenticity verdict. Cost 65,428 -> 63,082. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Go9hpkbGxzV6BU1BEsWs9E
Thirteen files that hold only cheap equal-body and same-slot records lose all their effective-source edits: act2actor, ambulance, infocenter, islepathactor, legoanimmmpresenter, legocarbuildpresenter, legomodelpresenter, mxatom, mxmusicmanager, mxnotificationmanager, mxvideomanager, raceskel and score. Their objects differ without the edits only in function bodies, and rbit repair re-found those bodies with newly discovered declaration carriers (28 function records updated, 1,617 choices tested). Files whose functions no carrier reproduced (doors, legotexturepresenter, mxcontrolpresenter, legovideomanager) keep their edits. A cold verify is byte-identical for all three targets with a clean authenticity verdict. Cost 63,082 -> 60,971. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Go9hpkbGxzV6BU1BEsWs9E
Eighteen files keep the effective-source edits that pin their data or section order and lose the declaration carriers whose removal changes only function bodies: buildings, helicopter, hospital, legoanim, legogamestate, legoobjectfactory, legotree, legoutils, legoworldpresenter, mxdsmultiaction, mxmediapresenter, mxregion, mxstillpresenter, mxstreamcontroller, mxvariabletable, registrationbook and towtrack partially, mxticklemanager entirely. Each file's candidate set was first checked removed together (objects identical outside the function bodies), then rbit repair re-found the bodies with newly discovered carriers in sixteen passes (40 function records updated, one source layout adjusted, 4,211 choices tested). Files whose functions no carrier reproduced keep their edits. A cold verify is byte-identical for all three targets with a clean authenticity verdict. Cost 60,971 -> 59,063. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Go9hpkbGxzV6BU1BEsWs9E
Six function records had become no-ops after the earlier removals: the composed body already equals the compiler's own output for ~RaceSkel, the InfocenterState constructor, LegoAnimNodeData::GetRotation, TowTrack::HandlePathStruct, LegoGameState::History::WriteScoreHistory and MxStillPresenter::LoadFrame. They are retired together with the two donors left without a consumer, and act3, legocachesoundmanager and mxtransitionmanager each lose one declaration carrier; rbit repair re-found the affected bodies in five passes. A cold verify is byte-identical for all three targets with a clean authenticity verdict. Cost 59,063 -> 58,678. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Go9hpkbGxzV6BU1BEsWs9E
Both files kept one declaration carrier whose removal changes only function bodies; rbit repair re-found those bodies with existing and newly discovered compiler choices (6 function records updated, 96 choices tested). A cold verify is byte-identical for all three targets with a clean authenticity verdict. Cost 58,678 -> 58,553. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Go9hpkbGxzV6BU1BEsWs9E
The release carries the repair fixes made while replacing overlay edits with function records (streamed probe progress overrun, a record re-authored to itself, a rediscovered saved carrier added twice) and the wider repair discovery; verify itself is unchanged. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Go9hpkbGxzV6BU1BEsWs9E
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This continues #1801 and lowers the ReproBit intervention cost from 65,428 to 58,553 (−6,875) by replacing effective-source edits with function records that repair finds on its own.
Method. Every file with effective-source edits was compiled with all its edits, with each single edit removed, and with none; the objects were compared strictly outside the debug sections. An edit whose removal changes nothing but function bodies (no data, exception-table or section-order difference) is a candidate: the edit is removed and
rbit repairre-finds the affected bodies with declaration carriers, which cost 1 point instead of 100. Files where the candidate set removed together was still bodies-only were batched; files where repair found no carrier for some function keep their edits.Commits.
Tried and refused, so the campaign stops here. Retiring an expensive record so the widened discovery could re-author it (the 500-point mosaics of VTable0x30 and LinkEdgesAndFaces, the 250-point rewrite of FUN_10061010): repair finds no fresh carrier state that reproduces those bodies and does not author rewriting records from scratch. Removing the remaining carriers of files that hold rewriting or mosaic records (legonavcontroller, legoroi, legolod, legoanimationmanager, legocharactermanager): the rewrite bodies move and the same gap applies. Moving
FindSoundByKey's owning-key constructor into the real source: its header declaration shifts the line tables of legosoundmanager.cpp, whose_Tree::_Eraseis a register-bijection record, a family without a measured-pin repair.Kept on purpose. Semantic edits (
noop_assign,local_ids,assert_reseatand the like) are never removed: they carry claims. Files whose functions no carrier reproduced keep their edits: legospline, mxbitmap, mxcontrolpresenter, doors, legotexturepresenter, legoracers, mxmain, legoracespecial, legopathactor, mxdiskstreamcontroller, legovideomanager (its Tickle is a register-bijection record, a family without a measured-pin repair), legosoundmanager, act3actors (the Brickster rewrite moves), and the dual-target mxdirectx files.ReproBit. Three fixes landed on its master during this round:
1f974d2(the streamed probe progress overran its planned upper bound when in-flight compiles landed after the plan was reached),ca5cf38(a record re-authored to itself is a restatement, not a remove-and-add of one identifier) and059ae01(a rediscovered saved carrier is never re-added). The PR pins ReproBit 0.2.2, which carries these fixes; verify itself is unchanged.A cold
rbit verifyon the final tree is byte-identical for all three targets with a clean authenticity verdict.🤖 Generated with Claude Code
https://claude.ai/code/session_01Go9hpkbGxzV6BU1BEsWs9E