Files
Cesarus85--mjolnir-vr/docs/object_matching_logs/actors_obj_codex_checkpoint.md
T

5.3 KiB

actors.obj Codex exact-setter checkpoint

Scope and result

  • Integration base: cc7b74b732369c5d3ddd659bd03855c10a912aae. That base already contains the corrected actors.h ABI from 81e69388.
  • Historical commit 35aa1c363117bbe907cd1bfffc36a76f48729fc9 was used only as a source lead. Its four readable typed setters were rebuilt independently against the current January target; no other donor source, header, configuration, or documentation change was imported.
  • The untouched base was 17/76 strict-exact functions, 1,016 meaningful code bytes, 1,152 padded bytes, and 72 relocations. The final forced XDK 3911 build is 21/76, 1,274 meaningful bytes, 1,440 padded bytes, and 80 relocations.
  • The strict gain is four functions and 258 meaningful bytes. The object stays honestly NonMatching; no whole-object admission or parked credit is claimed.

Strict function evidence

The hardened comparator agrees on padded bytes, relocation count and identity, and normalized bytes for each added function. Their target and rebuilt public owners also agree at COFF storage class 2 and function type 32.

Function Meaningful bytes Padded bytes Relocations Normalized SHA-256
_actor_unit_control_crouch 57 64 2 8ee39009874b2d5e8cbb3db2aca3eefb42d0f6e56ca8f3a7aa2f261ecbb5f850
_actor_unit_control_primary_trigger 81 96 2 7d2c0bc6e6a8b49a39f01d9a0cce6827439c176302aa472c9c6b4b272bcc0250
_actor_unit_control_secondary_trigger 63 64 2 c32dd71b0f2b8e605dc0446fc6ebebbe31299c7478716adf68156b6bdfde1ff8
_actor_unit_control_exact_facing 57 64 2 223360249e08e2749dab433a0fd0757f33a58f7f19efb039a2ebc4cd1dd7dd50

Each body obtains the typed actor_datum through actor_get, updates the named control flag or analog-trigger field, and ends with an explicit return;. There is no assembly, volatile scheduling device, force-inline annotation, optimizer pragma or barrier, undefined behavior, byte forcing, or raw-offset datum access.

Whole-TU, data, and symbol audit

The pre-edit regression manifest freezes all 17 accepted functions and every rebuilt non-code and symbol-ownership record. All 17 baseline functions remain strict exact after the additions. The candidate's 15 non-code sections (412 logical bytes) are fingerprint-identical to the baseline, so this checkpoint changes no data and claims no data credit.

The fail-closed pre-edit check reports the four functions as NEWLY_EXACT, as expected. It also reports three accepted-function fingerprint changes and a symbol-set change. Those findings were inspected rather than waived:

  • _actor_unit_control_jump, _actor_unit_control_throw_grenade, and _actor_unit_control_stop_animation_impulse retain identical padded size, normalized bytes, relocation addresses and destinations, section flags, COMDAT selection, and public owner. Only their numeric COFF section indices move as the four naturally ordered function sections are inserted.
  • The symbol inventory grows from 75 to 84 records: four public function owners, four corresponding .text section symbols, and the ordinary __fltused undefined symbol required by the real-valued primary-trigger parameter. Apart from the same numeric section-index shifts for the three existing setters, no ownership record changes.
  • No DATA_CHANGED, lost exact function, compiler/configuration drift, or changed nonexact-function finding is present.

A clean post-commit snapshot followed by deletion and forced rebuilding of actors.obj is the stable same-path proof for the reviewed new symbol shape.

Corrected-header and frozen-object boundary

The integration base already includes the 81e69388 correction and its same-path old/new declaration A/B: 26 direct actors.h consumers plus two additional frozen units were byte-identical after normalizing only the COFF timestamp. That recorded proof includes vehicles, ai_debug, ai_script, actions, and units.

This checkpoint changes only actors.c and this new Codex ledger. It does not modify actors.h, any frozen source, configuration, semantic/park ledger, or pre-existing Markdown, so that consumer proof remains applicable.

Reproducibility and gates

  • Source SHA-256: 8e6c2cf4acf64143d1a81a2ce239bfee6abb82d28db48b0b5d7049adf3ceb98c.
  • Corrected header SHA-256: 7d5fd4146ab86f65eae81608ecb6c3f43fcecb7095a01aab6f0ff8fea94485c6.
  • January target object SHA-256: 632a2b344e779e5d58e4d9e8e881700d8d106d51fdc3b74cc731aff9e7c3d9b9.
  • Forced rebuilt object SHA-256: 2b87719a6a19c4d280fca49e3a8997c58e8b1c16df47722394bde36445ddbfc8.
  • Full halobetacache_build and libcmt_build pass.
  • Semantic audit: 470 units, 3,845 functions evaluated, 3,704 semantic exact, 3,768 accepted exact, and zero unit errors.
  • Campaign progress: 375/833 complete objects, 3,757/11,060 exact functions, 459,500/2,198,102 exact code bytes, and 1,803,160/4,176,062 matched data bytes.
  • Admission: zero candidates and zero revocations; only the inherited source/shell/shell_xbox contradiction remains.
  • Parked audit: three active, zero stale, and zero invalid.
  • Tool suite: 179/179 tests pass.

No tracked file is deleted, no user-frozen object is edited, no existing or Claude-authored Markdown is changed, and nothing is pushed.