Files
BFM-decomp/docs/lever-progress.tsv
T
Drew T fb6c857f7c phase-36: the build/ coupling fixed (a baseline snapshot the fleet gate cannot wipe) + T7 agent a4 — func_8016C49C closed by one do-while on the last statement (126 bodies)
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.
2026-09-10 10:30:38 -06:00

3.5 KiB

1datemilestoneheadsites_ABpinsasmbodies_ABdistinct_ABmarkedunmarkedgte_leversper_tu_asm_macrosclass_Cclass_Dclass_Eclass_Fclass_G
22026-09-09T6 r1 (rung R's first class)1761a3125339572051213445125781758339570462314172250742844576
32026-09-09T6 d1 (rung D's four exemplars)8fac96651339532050813445125741758339530462314172250742844576
42026-09-09T6 p1 (four classes propagated)a2da99b13334271998213445120481755334270462314172250742844576
52026-09-09S101 rung G g1 (the guided search's first run: 1 of 16 exemplars, 132 bodies)623e55340332951998213313119161754332950462314159050742844576
62026-09-09S101 rung G g2 (wider beam + R10/R12/R13/R8-cse: 1 of 16, 132 bodies)584031c71330311971813313117841753330310462314159050742844576
72026-09-09S101 rung G g3 (the next 64 classes: 13 of 64, 1,516 bodies)5ae0b5ceb310251844212583102681740310250462314159050742844576
82026-09-09S101 rung G g4s (the 13 explained names, 38 classes: 3 of 38, 133 bodies)068781ae0308921830912583101351737308920462314159050742844576
92026-09-09S101 rung G g5 (the head re-drawn wide: 5 of 70, 62 bodies)1ec67f667308061826112545100731732308060462314159050742844576
102026-09-09S101 rung G g6 + g6b (the tail: 47 + 63 of 400 small classes, 93 + 186 + 47 bodies)2f3ce92a130358179541240497471624303580462314159050742844576
112026-09-10S102 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)5a8bd102130098176941240496171623300980462314159050742844576
122026-09-10S102 T7 s1 — the R15 sweep of the head: 6 exemplars closed by the sink alone (267 bodies), no drafting tokens861dd065129697174271227093501617296970462314159050742844576
132026-09-10S102 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)c00ffe5d429572173021227093501617295720462314159050742844576
142026-09-10S102 T7 s3 (partial, the run crashed in propagate) — the constant-holder draw: 10 bodies closed975850ff829533172661226793261594295330462314159050742844576
152026-09-10S102 T7 s3b — the constant-holder draw re-run after the propagate fix: 1 of 80, 6 bodies; 59 of 80 hit the compile budget5603a114c29527172601226793201593295270462314159050742844576
162026-09-10S102 T7 s5 — the first broad TAIL sweep with R15/R16/R17/R18: 285 of 800 bodies closed lever-free, no drafting tokens449acd8cb29204170291217590351308292040462314159050742844576
172026-09-10S102 T7 s6 — the last never-attempted exemplars: 25 of 337; the fresh pool is now empty67e91ad4d29148169961215290101283291480462314159050742844576
182026-09-10S102 T7 s7 (stopped early to restore agent cadence) — 5 of 207 judged at the wider width724c6885929140169891215190051280291400462314159050742844576
192026-09-10S102 T7 a7 — func_801287B8: a truncated local extern was faking a pin; the missing call argument restored through a function-pointer cast (127 bodies)bb0e95c7c29013168621215188781279290130462314159050742844576
202026-09-10S102 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)9f5b2217628887167361215187521278288870462314159050742844576