mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-04 00:20:10 -04:00
fb6c857f7c
Drew: fix the build issue so agents' effort doesn't get wiped, this needs to be parallelizable.
- every score compares a candidate with the fleet run's object under build/, and the R22 gate starts with make clean,
which deletes exactly that. With agents scoring in parallel, a fleet gate would make every live --try compare against a
missing or half-written baseline and report nonsense in the agent's own voice.
- fixed at the single accessor: delever_oracle.baseline_path(obj) returns the snapshot under .run/P36/delever/baseline/
when it holds the object and falls back to build/ when it does not, so nothing silently scores against half a snapshot.
baseline_bytes and both direct readers in delever_search.py go through it. --snapshot-baseline refreshes it:
7,428 objects, 188 MB, taken at 9f5b22176. Valid until the fleet stops being green: the baseline is the original game's
bytes and a bank is byte-identical by construction.
- known-true test both ways: func_800123F0 in src/800.c scores 0 MATCH with build/src/800.o present; the object was moved
away and it scores 0 MATCH unchanged; restored.
- a4: func_8016C49C from a seed of 34 to score 0 by one move — do { param_1[1] = sVar1; } while (0); on the function's
LAST statement. The residual was a single qsort comparison in global_alloc lost by 142 units out of 6666 (global.c:546
sort, :587 priority, :904 first-fit). reg_n_refs is loop-weighted and computed before combine and sched, so the
reference inside the do-while is counted twice (flow.c:434, :440-443, :2067/:2501/:2711): refs 23->24, priority
6524->6808 > 6666, the order flips and all 34 words fall into place. A plain block at the same site still scores 34,
which proves it is the loop notes and not the scope.
delever --propagate: 125 of 125 sibling(s) banked, 0 refused
lever_census --check: 28,887 pin/asm sites, 28,887 marked !FAKE, 0 UNMARKED — OK
- two instrument findings to act on: the candidate ranking buried the winning move at 438 of 439 so --cap 48 discarded it
in six runs (~4,300 compiles), and history.txt's 'R15 sink @2777 -> 1' is not reproducible (the generator's own text
scores 40) — to be checked against the bytes before either is trusted.
- snapshot row 19.
3.5 KiB
3.5 KiB
| 1 | date | milestone | head | sites_AB | pins | asm | bodies_AB | distinct_AB | marked | unmarked | gte_levers | per_tu_asm_macros | class_C | class_D | class_E | class_F | class_G |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | 2026-09-09 | T6 r1 (rung R's first class) | 1761a3125 | 33957 | 20512 | 13445 | 12578 | 1758 | 33957 | 0 | 462 | 314 | 1722 | 50 | 7428 | 445 | 76 |
| 3 | 2026-09-09 | T6 d1 (rung D's four exemplars) | 8fac96651 | 33953 | 20508 | 13445 | 12574 | 1758 | 33953 | 0 | 462 | 314 | 1722 | 50 | 7428 | 445 | 76 |
| 4 | 2026-09-09 | T6 p1 (four classes propagated) | a2da99b13 | 33427 | 19982 | 13445 | 12048 | 1755 | 33427 | 0 | 462 | 314 | 1722 | 50 | 7428 | 445 | 76 |
| 5 | 2026-09-09 | S101 rung G g1 (the guided search's first run: 1 of 16 exemplars, 132 bodies) | 623e55340 | 33295 | 19982 | 13313 | 11916 | 1754 | 33295 | 0 | 462 | 314 | 1590 | 50 | 7428 | 445 | 76 |
| 6 | 2026-09-09 | S101 rung G g2 (wider beam + R10/R12/R13/R8-cse: 1 of 16, 132 bodies) | 584031c71 | 33031 | 19718 | 13313 | 11784 | 1753 | 33031 | 0 | 462 | 314 | 1590 | 50 | 7428 | 445 | 76 |
| 7 | 2026-09-09 | S101 rung G g3 (the next 64 classes: 13 of 64, 1,516 bodies) | 5ae0b5ceb | 31025 | 18442 | 12583 | 10268 | 1740 | 31025 | 0 | 462 | 314 | 1590 | 50 | 7428 | 445 | 76 |
| 8 | 2026-09-09 | S101 rung G g4s (the 13 explained names, 38 classes: 3 of 38, 133 bodies) | 068781ae0 | 30892 | 18309 | 12583 | 10135 | 1737 | 30892 | 0 | 462 | 314 | 1590 | 50 | 7428 | 445 | 76 |
| 9 | 2026-09-09 | S101 rung G g5 (the head re-drawn wide: 5 of 70, 62 bodies) | 1ec67f667 | 30806 | 18261 | 12545 | 10073 | 1732 | 30806 | 0 | 462 | 314 | 1590 | 50 | 7428 | 445 | 76 |
| 10 | 2026-09-09 | S101 rung G g6 + g6b (the tail: 47 + 63 of 400 small classes, 93 + 186 + 47 bodies) | 2f3ce92a1 | 30358 | 17954 | 12404 | 9747 | 1624 | 30358 | 0 | 462 | 314 | 1590 | 50 | 7428 | 445 | 76 |
| 11 | 2026-09-10 | S102 T7 a1 — func_80156044 closed by an agent (merge-point expression sunk into the if/else arms, both $2/$3 pins gone); 130 bodies banked (1 + 129 propagated) | 5a8bd1021 | 30098 | 17694 | 12404 | 9617 | 1623 | 30098 | 0 | 462 | 314 | 1590 | 50 | 7428 | 445 | 76 |
| 12 | 2026-09-10 | S102 T7 s1 — the R15 sweep of the head: 6 exemplars closed by the sink alone (267 bodies), no drafting tokens | 861dd0651 | 29697 | 17427 | 12270 | 9350 | 1617 | 29697 | 0 | 462 | 314 | 1590 | 50 | 7428 | 445 | 76 |
| 13 | 2026-09-10 | S102 T7 a2 — func_80168828: the constant-holder pin deleted and one adjacent swap closes it (125 bodies, 1 of 2 pins off; the $4 pin is forced by the header's (void) declaration) | c00ffe5d4 | 29572 | 17302 | 12270 | 9350 | 1617 | 29572 | 0 | 462 | 314 | 1590 | 50 | 7428 | 445 | 76 |
| 14 | 2026-09-10 | S102 T7 s3 (partial, the run crashed in propagate) — the constant-holder draw: 10 bodies closed | 975850ff8 | 29533 | 17266 | 12267 | 9326 | 1594 | 29533 | 0 | 462 | 314 | 1590 | 50 | 7428 | 445 | 76 |
| 15 | 2026-09-10 | S102 T7 s3b — the constant-holder draw re-run after the propagate fix: 1 of 80, 6 bodies; 59 of 80 hit the compile budget | 5603a114c | 29527 | 17260 | 12267 | 9320 | 1593 | 29527 | 0 | 462 | 314 | 1590 | 50 | 7428 | 445 | 76 |
| 16 | 2026-09-10 | S102 T7 s5 — the first broad TAIL sweep with R15/R16/R17/R18: 285 of 800 bodies closed lever-free, no drafting tokens | 449acd8cb | 29204 | 17029 | 12175 | 9035 | 1308 | 29204 | 0 | 462 | 314 | 1590 | 50 | 7428 | 445 | 76 |
| 17 | 2026-09-10 | S102 T7 s6 — the last never-attempted exemplars: 25 of 337; the fresh pool is now empty | 67e91ad4d | 29148 | 16996 | 12152 | 9010 | 1283 | 29148 | 0 | 462 | 314 | 1590 | 50 | 7428 | 445 | 76 |
| 18 | 2026-09-10 | S102 T7 s7 (stopped early to restore agent cadence) — 5 of 207 judged at the wider width | 724c68859 | 29140 | 16989 | 12151 | 9005 | 1280 | 29140 | 0 | 462 | 314 | 1590 | 50 | 7428 | 445 | 76 |
| 19 | 2026-09-10 | S102 T7 a7 — func_801287B8: a truncated local extern was faking a pin; the missing call argument restored through a function-pointer cast (127 bodies) | bb0e95c7c | 29013 | 16862 | 12151 | 8878 | 1279 | 29013 | 0 | 462 | 314 | 1590 | 50 | 7428 | 445 | 76 |
| 20 | 2026-09-10 | S102 T7 a4 — func_8016C49C: one do-while on the function's LAST statement doubles a loop-note reference weight and flips allocno_compare (126 bodies) | 9f5b22176 | 28887 | 16736 | 12151 | 8752 | 1278 | 28887 | 0 | 462 | 314 | 1590 | 50 | 7428 | 445 | 76 |