One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.
func_800173BC
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.
func_800174FC
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.
func_80010DA0
Uncommitted src/ changes found at gate entry. These are banked functions from a lane that gates with commit=False, not residue — preserved, not reverted. Top-level src/*.c (main TUs) are excluded by construction (S59).
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.
func_8001A9D8
func_8005D588
The object failed to assemble: "jtbl_rodata_pads: consumed 3 rodata .align(s) but 4 pad
spec(s) given". The tempting fix is to relax the spec to 3 — it builds and it is
BYTE-IDENTICAL, which is exactly what makes it dangerous.
The spec was right and the SOURCE was wrong. func_8017E7CC was banked as of commit:2628 (68
INCLUDE_ASM in the TU) and back to a stub at commit:2629 (69) — the free A-prop maintenance
pass reverted a byte-proven function, and the object's 4th table went with it. Restoring
the body from commit:2628 with the ORIGINAL 0,0,0,0 spec builds BYTE-IDENTICAL
(fe9b413fc48ba615ccf81cde49d7a1efad481bc9), which is the proof the spec was never drifted.
R42 again, from the other direction: the destroyed bank did not merely vanish, it took a
build with it, and the failure wore a config-drift costume. A byte-identical build is not
evidence that the change you made was the right one — both fixes are byte-identical here
and only one keeps the function.
`extern void func_8018D088(void);` at line 3810 against `s32 func_8018D088(void *a0)`
at 3862: 'conflicting types', the object never compiled, and the whole overlay had been
RED. The decl now matches the definition; ov_SC03_001 builds BYTE-IDENTICAL
(f8fd92f59c6871577c61cb626cb9ddb0db5ba884).
Two edits into one TU each verified alone and conflicted together — the shared-TU race a
per-binary gate cannot see when the second writer never rebuilds the first writer's file.
Caught by the maintenance lane's periodic fleet R22 at 06:39 (R50), which is the only
oracle that looks at binaries no lane is touching.
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.
func_8001BADC
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.
func_8001125C
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.
func_80027BF0
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.
func_8002EEB8
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.
func_8001CFDC
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.
func_80010E7C
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.
func_8002FDC8
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.
func_80011680
vmNoiseOn
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.
func_80028D78
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.
func_800111BC
func_80028DBC
func_800495EC
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.
DsReadyCallback
SetIR123
func_8001D074
func_80028E00
func_800538BC
func_8005FBA8
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.
ApplyMatrix
FGO_01_OBJ_160
SetMAC123
func_80010CEC
func_80028E44
func_80052430
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.
DrawPrim
DsDataCallback
DsSyncCallback
Intpl
SpuWrite
__do_global_dtors
func_80013F98
func_80028E88
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.
DpqColorLight
FGO_02_OBJ_160
SsUtReverbOff
StoreImage
__main
func_80013FBC
func_80014564
func_80028ECC
func_8002A28C
func_80062768
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.
func_80013FE0
func_80016A3C
func_80016EB0
func_80019028
func_80028F10
func_8002A2B0
func_800599B8
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.
FGO_03_OBJ_160
func_80014004
func_80015310
func_80016EF8
func_800191A8
func_80028F54
func_8002A4D8
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.
FGO_04_OBJ_64
_addque
func_80013ED0
func_80014028
func_80017254
func_800176F0
func_80019A10
func_80028F98
func_8002A4FC
func_800413B8
func_8004D16C
func_8004D1DC
func_8005D4F0
One clean whole-EXE rebuild verified the batch (gate_main), and main re-checked
BYTE-IDENTICAL against config/check.us.sha before anything was credited.
FGO_05_OBJ_64
SYS_OBJ_1FF4
VM_NOWON_OBJ_1C0
func_800123F0
func_8001404C
func_80016ED4
func_8001739C
func_800178C8
func_8001BFF8
func_80028FDC
func_8002A748
func_80038308
func_80041400
func_8005D538
func_8005E3AC
func_8005EA34
The 16-fn -O0 cluster (0x8013B568..0x8013C964), remapped from the ov_SC01_077 exemplars
(16/16 matched there) into all three freshly carved -O0 objects:
ov_SC02_037 16/16 ov_MAIN_012 16/16 ov_SC03_107 16/16
All three BYTE-IDENTICAL against config/check.<ov>.sha after the batch, and corpus.stubs
reports zero of the 16 addresses still open in any of them. 48 functions for zero model
tokens — the entire cost was a partitioning fix.
R14 NOTE ON THE INSTRUMENT: sweep_parallel summarised "banked=44 notbanked=4" while the
byte gate and corpus.stubs both say 48/48. The bytes win; its counter undercounts (drafts
banked in a later chunk after a bisect appear not to be credited). Worth a look before that
number is ever quoted as a rate.
Three drafts per overlay came with a gather_externs warning — a sibling callee with no
file-scope decl in ov077 (func_8013B83C, func_8013BD74). They banked anyway: C89 implicit
declaration covers a same-TU sibling whose stub sits in the same object. The gate decided,
not the warning.
With U2's 4, this closes the -O0 U2/U3 thread: 52 functions / ~6,730 instructions banked
tonight from the stranded -O0 population without drafting a line.
ov_SC02_037, ov_MAIN_012 and ov_SC03_107 never received the P30 _o0c carve, so the 16-fn
-O0 cluster at 0x8013B568..0x8013C98C sat inside their -O2 `jr_801380E0` object. Opt level
is a property of the FILE (§116), so every remap into it was correctly rejected by the gate
— 16 functions x 3 overlays unreachable for a partitioning reason, not a matching one.
o0_subsplit at [0x8013B568, 0x8013C98C) per overlay. All three BYTE-IDENTICAL after
`make extract && make build`, which is the whole claim of a carve — it moves nothing:
ov_SC02_037 b0c5394ae23cd5f0cbb32687f61bca669151bf5f
ov_MAIN_012 d6b3e8b971cdd6c53aea8c4f265afb82b363283c
ov_SC03_107 87d02b578a27a947f1da381255a1faa3f05cedfd
A LOCKING RULE THIS EARNED. ov_MAIN_012's dry run planned 5 regions around an "-O2 island"
at func_8013C0F8 [def]; the real run planned 3, and the function is an INCLUDE_ASM stub in
both HEAD and the carved tree — nothing was lost. The dry run had read a MID-GATE
SUBSTITUTION: a lane had a candidate body in that TU, the gate rejected it, and the stub
came back. o0_subsplit derives its plan from which functions are matched, so a plan derived
outside the per-binary lock can be a plan about a tree state that never existed. Derive the
plan INSIDE `.run/auto/gate.<bin>.lock`, carve under the same lock — which is what the real
runs did, and why they saw the truth.
Next: populate the 3x16 from the ov_SC01_077 exemplars (16/16 matched there), then gate.