mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-01 23:52:03 -04:00
phase-36: S105 (cont.) — f9 landed 6/6 (3 plain C, 1 do-while, 2 proven + parked), R22 218/218, census 4,032 / 0 unmarked (exit 0); METHOD step 23; checkpoint refreshed | 🛑 T7 RUNNING
This commit is contained in:
@@ -335,3 +335,22 @@
|
||||
the identical constant stores ABOVE the nearest preceding two-register-value store (`la|lui|or`) so the holder's live range
|
||||
overlaps v0/v1 and `find_free_reg` gives it `a1` (sched1 keeps equal-priority constant stores in source order); 240 adjacent
|
||||
permutations all scored 6 — R9/R18 are inert here, the straddle closed in every try.
|
||||
23. **S105 f9 (`ov_SC02_027_jr_8017D898`, 6 of 6 at 0: 3 plain C, 1 do-while, 2 proven at their levers and parked):**
|
||||
- **sched1 REWRITES `reg_live_length` on the final stream** (`sched.c:4911-4930`): only flow's loop-weighted refs (`flow.c:2067`)
|
||||
can flip an `allocno_compare` gap — every "+1 flow-time insn" spelling changes bytes; a <10 % gap between a parameter and a
|
||||
local consumed by the final call's arguments is the do-while's exact tell (the sibling copies spell it that way too).
|
||||
- A constant holder set PER ARM and consumed by an identical expression in both arms → declare it per arm (a function-scope one
|
||||
is a global allocno pushed to `v1` by pass-0 exclusions, `global.c:945-990`; per arm it is a block-local quantity,
|
||||
`local-alloc.c:2101`, and cross-jump re-merges the tail) — R23's sibling-arm constant-holder form, and it must stay `s16`.
|
||||
- N ascending-register word loads + N stores with a `lw; nop; sw` leftover = a STRUCT ASSIGNMENT (`expand_block_move`,
|
||||
`mips.c:2331-2360`, `movstrsi_internal`; the temps are priority-0 scratch quantities; `.lreg`'s REG_UNUSED hard-reg notes on a
|
||||
single `parallel` name it). If the words are consecutive CARVED symbols the plain spelling is identical only after linking →
|
||||
park as a carve change with the struct spelling in scratch.
|
||||
- `move v0,<ptr>` in a j-to-epilogue slot + `move v0,zero` on the fall-through of a `void` function = a RETURN VALUE
|
||||
(`expand_value_return`, `stmt.c:2505-2528`; a dead hard-reg set is deleted by flow) → signature change, patch parked.
|
||||
- The narrow-load split (step 19) also empties the `beqz` delay slots that barriers had been faking (reorg's `opposite_needed`
|
||||
changes with the allocation) — re-score WITHOUT the adjacent barriers after the split; shrink `pad[N]` by one 8-byte slot per
|
||||
split site.
|
||||
- Two of six closed by grepping the TU for a distinctive constant and porting the lever-free sibling's spelling verbatim
|
||||
(`related.txt` had neither) — R71 first, tables second. `--try TU FN FILE` WITHOUT `--body` scores a spliced whole TU: that is
|
||||
how a prototype/signature change is tested read-only.
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
},
|
||||
"kinds": {
|
||||
"asm-body/direct": 13,
|
||||
"barrier/direct": 243,
|
||||
"barrier/direct": 241,
|
||||
"gte-lever/direct": 356,
|
||||
"gte-lever/via-macro": 94,
|
||||
"gte-unsigned/direct": 270,
|
||||
@@ -61,15 +61,15 @@
|
||||
"gte/via-macro": 6160,
|
||||
"instruction/direct": 202,
|
||||
"instruction/via-macro": 22,
|
||||
"keepalive/direct": 331,
|
||||
"launder/direct": 578,
|
||||
"keepalive/direct": 328,
|
||||
"launder/direct": 577,
|
||||
"launder/via-macro": 42,
|
||||
"verbatim-body/direct": 2682
|
||||
}
|
||||
},
|
||||
"binaries": 218,
|
||||
"cfake_markers": {
|
||||
"count": 52,
|
||||
"count": 53,
|
||||
"sample": [
|
||||
"src/800.c:12543",
|
||||
"src/800_b_2.c:2948",
|
||||
@@ -82,7 +82,8 @@
|
||||
"src/ov_SC01_077/ov_SC01_077_jr_80183CF4.c:3979",
|
||||
"src/ov_SC01_080/ov_SC01_080_jr_8017AE2C.c:5178",
|
||||
"src/ov_SC02_011/ov_SC02_011_jr_80183178.c:2139",
|
||||
"src/ov_SC02_027/ov_SC02_027_jr_8017D898.c:4534",
|
||||
"src/ov_SC02_027/ov_SC02_027_jr_8017D898.c:4528",
|
||||
"src/ov_SC02_027/ov_SC02_027_jr_8017D898.c:8370",
|
||||
"src/ov_SC02_028/ov_SC02_028_jr_8017D898.c:5461",
|
||||
"src/ov_SC02_041/ov_SC02_041_jr_8017BEBC.c:7554",
|
||||
"src/ov_SC03_014/ov_SC03_014_jr_801848E4.c:5025",
|
||||
@@ -109,42 +110,41 @@
|
||||
"src/ov_SC05_018/ov_SC05_018_jr_8017D604.c:4942",
|
||||
"src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c:8444",
|
||||
"src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c:8484",
|
||||
"src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c:8811",
|
||||
"src/ov_SC06_018/ov_SC06_018_jr_80187AEC.c:3125"
|
||||
"src/ov_SC06_000/ov_SC06_000_jr_8017AE2C.c:8811"
|
||||
]
|
||||
},
|
||||
"classes": {
|
||||
"A": {
|
||||
"bodies": 1336,
|
||||
"distinct_bodies": 505,
|
||||
"bodies": 1332,
|
||||
"distinct_bodies": 501,
|
||||
"file_scope": 0,
|
||||
"in_bodies": 2163,
|
||||
"in_bodies": 2157,
|
||||
"kinds": {
|
||||
"pin": 2163
|
||||
"pin": 2157
|
||||
},
|
||||
"marked": 2163,
|
||||
"sites": 2163,
|
||||
"marked": 2157,
|
||||
"sites": 2157,
|
||||
"tus": 1075,
|
||||
"unmarked": 0
|
||||
},
|
||||
"B": {
|
||||
"bodies": 4603,
|
||||
"distinct_bodies": 670,
|
||||
"bodies": 4599,
|
||||
"distinct_bodies": 666,
|
||||
"file_scope": 13,
|
||||
"in_bodies": 11177,
|
||||
"in_bodies": 11171,
|
||||
"kinds": {
|
||||
"asm-body": 13,
|
||||
"barrier": 243,
|
||||
"barrier": 241,
|
||||
"gte": 6357,
|
||||
"gte-lever": 450,
|
||||
"gte-unsigned": 270,
|
||||
"instruction": 224,
|
||||
"keepalive": 331,
|
||||
"launder": 620,
|
||||
"keepalive": 328,
|
||||
"launder": 619,
|
||||
"verbatim-body": 2682
|
||||
},
|
||||
"marked": 2365,
|
||||
"sites": 11190,
|
||||
"marked": 2359,
|
||||
"sites": 11184,
|
||||
"tus": 1425,
|
||||
"unmarked": 8825
|
||||
},
|
||||
@@ -178,17 +178,17 @@
|
||||
"unmarked": 50
|
||||
},
|
||||
"E": {
|
||||
"bodies": 1099,
|
||||
"distinct_bodies": 160,
|
||||
"bodies": 1100,
|
||||
"distinct_bodies": 161,
|
||||
"file_scope": 6432,
|
||||
"in_bodies": 1369,
|
||||
"in_bodies": 1370,
|
||||
"kinds": {
|
||||
"asm-label": 7801
|
||||
"asm-label": 7802
|
||||
},
|
||||
"marked": 0,
|
||||
"sites": 7801,
|
||||
"sites": 7802,
|
||||
"tus": 2090,
|
||||
"unmarked": 7801
|
||||
"unmarked": 7802
|
||||
},
|
||||
"F": {
|
||||
"bodies": 428,
|
||||
@@ -250,9 +250,9 @@
|
||||
"coverage": {
|
||||
"asm": {
|
||||
"comment_dead": 6781,
|
||||
"live": 14996,
|
||||
"live": 14985,
|
||||
"macro_block": 194,
|
||||
"raw": 21971
|
||||
"raw": 21960
|
||||
},
|
||||
"attribute": {
|
||||
"comment_dead": 0,
|
||||
@@ -267,10 +267,10 @@
|
||||
"raw": 599
|
||||
},
|
||||
"register": {
|
||||
"comment_dead": 8574,
|
||||
"live": 2213,
|
||||
"comment_dead": 8575,
|
||||
"live": 2207,
|
||||
"macro_block": 18,
|
||||
"raw": 10805
|
||||
"raw": 10800
|
||||
},
|
||||
"volatile": {
|
||||
"comment_dead": 2607,
|
||||
@@ -280,7 +280,7 @@
|
||||
}
|
||||
},
|
||||
"coverage_ok": true,
|
||||
"elapsed_s": 22.4,
|
||||
"elapsed_s": 22.5,
|
||||
"generated": "2026-09-11",
|
||||
"gte_levers": {
|
||||
"direct": 356,
|
||||
@@ -291,15 +291,15 @@
|
||||
"via_macro": 94,
|
||||
"what": "GTE ops whose clobbers exceed the canonical macro's (a scheduling steer): class-B levers INSIDE the headline number since T5 (2026-09-09), marked, 0 at the close"
|
||||
},
|
||||
"head": "3d6111828",
|
||||
"head": "c2455f5d3",
|
||||
"headers": 3181,
|
||||
"levers_AB": {
|
||||
"asm": 1881,
|
||||
"bodies": 1993,
|
||||
"distinct_bodies": 687,
|
||||
"marked": 4044,
|
||||
"pins": 2163,
|
||||
"sites": 4044,
|
||||
"asm": 1875,
|
||||
"bodies": 1989,
|
||||
"distinct_bodies": 683,
|
||||
"marked": 4032,
|
||||
"pins": 2157,
|
||||
"sites": 4032,
|
||||
"unmarked": 0,
|
||||
"what": "register pins + asm statements excluding GTE ops: the classes the phase drives to 0"
|
||||
},
|
||||
@@ -432,7 +432,7 @@
|
||||
"what": "asm-bearing #define blocks outside the GTE header: 0 at the close (T5 deletes the canonical duplicates, T7 the variants)"
|
||||
},
|
||||
"pins": {
|
||||
"bare_name": 8,
|
||||
"bare_name": 6,
|
||||
"init": 201,
|
||||
"registers": {
|
||||
"$0": 54,
|
||||
@@ -443,7 +443,7 @@
|
||||
"$14": 5,
|
||||
"$15": 1,
|
||||
"$16": 74,
|
||||
"$17": 27,
|
||||
"$17": 26,
|
||||
"$18": 26,
|
||||
"$19": 16,
|
||||
"$2": 755,
|
||||
@@ -453,40 +453,40 @@
|
||||
"$23": 6,
|
||||
"$25": 1,
|
||||
"$3": 157,
|
||||
"$4": 490,
|
||||
"$5": 372,
|
||||
"$4": 489,
|
||||
"$5": 370,
|
||||
"$6": 59,
|
||||
"$7": 25,
|
||||
"$8": 23,
|
||||
"$9": 21,
|
||||
"7": 1,
|
||||
"a0": 3,
|
||||
"a0": 2,
|
||||
"a1": 2,
|
||||
"v0": 2
|
||||
"v0": 1
|
||||
},
|
||||
"sites": 2163,
|
||||
"sites": 2157,
|
||||
"sp": 0,
|
||||
"spelling": {
|
||||
"__asm__": 2140,
|
||||
"asm": 23
|
||||
"__asm__": 2136,
|
||||
"asm": 21
|
||||
},
|
||||
"volatile_qualified": 0,
|
||||
"zero": 54
|
||||
},
|
||||
"src_stamp": "b9f8d1314e8323d7",
|
||||
"src_stamp": "2a1915c572d26c16",
|
||||
"tus": 4121,
|
||||
"unclassified": 0,
|
||||
"union_AD": {
|
||||
"bodies": 5759,
|
||||
"bodies": 5755,
|
||||
"by_kind": {
|
||||
"main": 124,
|
||||
"md": 105,
|
||||
"ov": 5365,
|
||||
"ov": 5361,
|
||||
"resident": 6,
|
||||
"shared": 159
|
||||
},
|
||||
"copies_in_multi": 4849,
|
||||
"distinct_bodies": 1020,
|
||||
"distinct_bodies": 1016,
|
||||
"multi_copy_classes": 110
|
||||
},
|
||||
"verbatim_excluded": {
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
lever_census: 218 binaries · 4,121 TUs + 3,181 headers · coverage OK · unclassified 0 · verbatim excluded 13 fn / 14 sites (manifest 13)
|
||||
coverage asm raw 21971 = live 14996 + macro-block 194 + comment/dead 6781
|
||||
coverage register raw 10805 = live 2213 + macro-block 18 + comment/dead 8574
|
||||
coverage asm raw 21960 = live 14985 + macro-block 194 + comment/dead 6781
|
||||
coverage register raw 10800 = live 2207 + macro-block 18 + comment/dead 8575
|
||||
coverage volatile raw 4372 = live 1683 + macro-block 82 + comment/dead 2607
|
||||
coverage builtin raw 599 = live 445 + macro-block 0 + comment/dead 154
|
||||
coverage attribute raw 76 = live 76 + macro-block 0 + comment/dead 0
|
||||
class sites in-bodies file-scope bodies distinct TUs marked unmarked kinds
|
||||
A pins 2163 2163 0 1336 505 1075 2163 0 {'pin': 2163}
|
||||
B asm 11190 11177 13 4603 670 1425 2365 8825 {'gte': 6357, 'gte-lever': 450, 'gte-unsigned': 270, 'barrier': 243, 'launder': 620, 'instruction': 224, 'asm-body': 13, 'keepalive': 331, 'verbatim-body': 2682}
|
||||
A pins 2157 2157 0 1332 501 1075 2157 0 {'pin': 2157}
|
||||
B asm 11184 11171 13 4599 666 1425 2359 8825 {'gte': 6357, 'gte-lever': 450, 'gte-unsigned': 270, 'barrier': 241, 'launder': 619, 'instruction': 224, 'asm-body': 13, 'keepalive': 328, 'verbatim-body': 2682}
|
||||
C volatile 1589 1437 152 495 94 609 14 1575 {'decl-body': 58, 'decl-file': 152, 'cast': 1377, 'param': 2}
|
||||
D register 50 50 0 47 47 6 0 50 {'register': 50}
|
||||
E asm-label 7801 1369 6432 1099 160 2090 0 7801 {'asm-label': 7801}
|
||||
E asm-label 7802 1370 6432 1100 161 2090 0 7802 {'asm-label': 7802}
|
||||
F builtin 445 445 0 428 27 302 0 445 {'builtin': 445}
|
||||
G attribute 76 1 75 1 1 40 0 76 {'attribute': 76}
|
||||
UNION A–D: 5,759 bodies · 1,020 distinct (addresses normalized) · 110 multi-copy classes holding 4,849 bodies · by kind {'ov': 5365, 'shared': 159, 'main': 124, 'md': 105, 'resident': 6}
|
||||
THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 4,044 sites in 1,993 bodies (687 distinct) · marked !FAKE 4,044 · UNMARKED 0
|
||||
UNION A–D: 5,755 bodies · 1,016 distinct (addresses normalized) · 110 multi-copy classes holding 4,849 bodies · by kind {'ov': 5361, 'main': 124, 'shared': 159, 'md': 105, 'resident': 6}
|
||||
THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 4,032 sites in 1,989 bodies (683 distinct) · marked !FAKE 4,032 · UNMARKED 0
|
||||
orphan !FAKE markers (no pin/asm site on the line nor below): 0
|
||||
marked ordinary-C fakes kept by Drew's S104 ruling (a) (`do { } while (0)`, dead initialisers; NOT levers): 52
|
||||
marked ordinary-C fakes kept by Drew's S104 ruling (a) (`do { } while (0)`, dead initialisers; NOT levers): 53
|
||||
GTE levers (clobbers beyond the canonical macro's): 450 sites (94 via a variant macro, 356 direct) · marked 450 · UNMARKED 0 · unsigned GTE statements 270
|
||||
per-TU asm macro definitions outside the GTE header: 314 {'gte': 150, 'launder': 154, 'instruction': 9, 'barrier': 1} (GTE variants 64)
|
||||
pins: 2,163 · $0 54 · $sp 0 · with initializer 201 · volatile-qualified 0 · bare-name 8 · spellings {'__asm__': 2140, 'asm': 23}
|
||||
pins: 2,157 · $0 54 · $sp 0 · with initializer 201 · volatile-qualified 0 · bare-name 6 · spellings {'__asm__': 2136, 'asm': 21}
|
||||
whole-body asm routines in C shells, manifest PERMANENT (hand asm, NOT levers): 22 routines · 2,682 sites (2,660 private copies + 22 shared headers); asm-bodies NOT permanent (levers): 13 site(s) ['func_8001E378:DECOMPILE-NOW', 'func_80020F34:DECOMPILE-NOW', 'func_800249F0:DECOMPILE-NOW', 'func_80025CBC:DECOMPILE-NOW', 'func_80026514:UNCERTAIN', 'func_800268D0:UNCERTAIN', 'func_80027058:DECOMPILE-NOW', 'func_80027200:DECOMPILE-NOW', 'func_800CBA44:DECOMPILE-NOW', 'func_8017D810:DECOMPILE-NOW', 'func_8017E26C:UNCERTAIN', 'func_80184440:DECOMPILE-NOW', 'func_801A3BCC:DECOMPILE-NOW']
|
||||
asm kinds: {'asm-body/direct': 13, 'barrier/direct': 243, 'gte/direct': 197, 'gte/via-macro': 6160, 'gte-lever/direct': 356, 'gte-lever/via-macro': 94, 'gte-unsigned/direct': 270, 'instruction/direct': 202, 'instruction/via-macro': 22, 'keepalive/direct': 331, 'launder/direct': 578, 'launder/via-macro': 42, 'verbatim-body/direct': 2682}
|
||||
asm kinds: {'asm-body/direct': 13, 'barrier/direct': 241, 'gte/direct': 197, 'gte/via-macro': 6160, 'gte-lever/direct': 356, 'gte-lever/via-macro': 94, 'gte-unsigned/direct': 270, 'instruction/direct': 202, 'instruction/via-macro': 22, 'keepalive/direct': 328, 'launder/direct': 577, 'launder/via-macro': 42, 'verbatim-body/direct': 2682}
|
||||
instruction mnemonics: {'la': 136, 'addiu': 22, 'addu': 22, 'RTP_SND': 22, '.section': 7, 'lui': 3, 'lh': 3, 'and': 2, 'mult': 1, 'mfhi': 1, 'sll': 1, 'li': 1, 'lw': 1, 'nop': 1, 'srl': 1}
|
||||
gte mnemonics: {'gte_ldv0': 759, 'gte_stlvnl': 593, 'gte_stsxy': 448, 'gte_rtps': 439, 'gte_stflg': 415, 'gte_rtpt': 352, 'gte_SetRotMatrix': 253, 'gte_stsxy3': 236, 'gte_SetTransMatrix': 231, 'gte_rtv0tr': 229, 'gte_ldv3c': 184, 'gte_ldv3': 177, 'gte_stsv': 161, 'lwc2': 158, 'gte_stsz4': 149, 'gte_stsz3': 147, 'gte_stszotz': 134, 'gte_dpcl': 134, 'gte_stclmv': 114, 'gte_stsxy3_f3': 111, 'gte_nclip': 108, 'gte_stopz': 108, 'gte_stsxy3c': 108, 'gte_rtir': 81, 'gte_stsxy3_ft3': 79, 'gte_ldclmv': 78, 'gte_avsz4': 56, 'gte_stotz': 52, 'gte_ldrgb': 30, 'gte_nccs': 25}
|
||||
asm-bearing macro definitions: 314 (20 names, 3 with >1 text) kinds {'gte': 150, 'launder': 154, 'instruction': 9, 'barrier': 1}
|
||||
@@ -29,4 +29,4 @@ lever_census: 218 binaries · 4,121 TUs + 3,181 headers · coverage OK · unclas
|
||||
src/shared/ov/func_80178004.h pins got 8 expected 26 N-A
|
||||
ov_SC03_006 func_80184034 bare-name pins got 0 expected 3 N-A
|
||||
engine_prelude.h asm sites (a macro definition only) got 0 expected 0 OK
|
||||
elapsed 22.4 s
|
||||
elapsed 22.5 s
|
||||
|
||||
@@ -73,3 +73,4 @@ date milestone head sites_AB pins asm bodies_AB distinct_AB marked unmarked gte_
|
||||
2026-09-11 S105 f6 (6) 4bca24866 4058 2172 1886 2000 694 4058 0 451 314 1589 50 7800 445 76
|
||||
2026-09-11 S105 f8 (5) 36be9acef 4046 2163 1883 1995 689 4046 0 450 314 1589 50 7801 445 76
|
||||
2026-09-11 S105 comment-strip regen (2) 3d6111828 4044 2163 1881 1993 687 4044 0 450 314 1589 50 7801 445 76
|
||||
2026-09-11 S105 f9 (6) c2455f5d3 4032 2157 1875 1989 683 4032 0 450 314 1589 50 7802 445 76
|
||||
|
||||
|
+3
-1
@@ -119,6 +119,7 @@ counted, not marked). E, F and G belong to the canonical type layer and are the
|
||||
| 2026-09-11 | S105 f6 (6) | 2172 | 1886 | **4058** | 2000 | 694 | 451 | 314 | 1589 | 50 | 7800 | 445 | 76 | `4bca24866` |
|
||||
| 2026-09-11 | S105 f8 (5) | 2163 | 1883 | **4046** | 1995 | 689 | 450 | 314 | 1589 | 50 | 7801 | 445 | 76 | `36be9acef` |
|
||||
| 2026-09-11 | S105 comment-strip regen (2) | 2163 | 1881 | **4044** | 1993 | 687 | 450 | 314 | 1589 | 50 | 7801 | 445 | 76 | `3d6111828` |
|
||||
| 2026-09-11 | S105 f9 (6) | 2157 | 1875 | **4032** | 1989 | 683 | 450 | 314 | 1589 | 50 | 7802 | 445 | 76 | `c2455f5d3` |
|
||||
|
||||
### The campaign — every batch, from the ledger (derived on every render)
|
||||
|
||||
@@ -429,7 +430,8 @@ counted, not marked). E, F and G belong to the canonical type layer and are the
|
||||
| `s105_f6_minlever` | 2026-09-11 | E | 0 | 0 | 0 | 2 | 0 |
|
||||
| `s105_f8` | 2026-09-11 | E | 0 | 0 | 0 | 11 | 5 |
|
||||
| `s105_comment6` | 2026-09-11 | E | 0 | 0 | 0 | 2 | 2 |
|
||||
| **total** | | | **17,122** | **20,778** | **283** | **30,380** | **10,753** |
|
||||
| `s105_f9` | 2026-09-11 | E | 0 | 0 | 0 | 12 | 4 |
|
||||
| **total** | | | **17,122** | **20,778** | **283** | **30,392** | **10,757** |
|
||||
|
||||
*Generated by `tools/lever_progress.py --render` from `.run/P36/census/lever_census.json` and `.run/P36/delever/ledger.jsonl`; the series lives in `docs/lever-progress.tsv` (R75: published numbers are generated, never typed).*
|
||||
|
||||
|
||||
@@ -2093,17 +2093,31 @@ accumulate here as the phase produces them.**
|
||||
`3d6111828` → `lever_census --check: 4,044 pin/asm sites, 4,044 marked !FAKE, 0 UNMARKED — OK` (exit 0) → snapshot (4,046 → **4,044**).
|
||||
The other four (`func_8018F734`, `func_80185434`, `func_80181A30`, `func_80184BFC`) are now ordinary drawable classes.
|
||||
|
||||
## 🛑 SESSION CHECKPOINT — S105 (2026-09-11, FINAL — the session's last commit follows this): T0–T6 ☑, **T7 RUNNING at Drew's cap of ONE agent (was two)**. 4,152 → **4,044 sites** this session (−108); 8 TU batches f1–f8, **42 of 42 drawn classes at 0** (32 plain C, 2 do-while-only, 8 minimum-lever incl. 3 parked signature changes), ALL banked — **f9 (ov_SC02_027, 6 classes) IN FLIGHT**; generators **R44–R46** + R22 fixed three ways (4 free banks, 3 of them shared headers on 141 objects); R22 `check-all: 218 passed, 0 failed of 218` at `3d6111828` | `lever_census --check` exit 0 (4,044 marked, 0 UNMARKED, 0 orphans)
|
||||
- **S105 (cont.) — f9 landed: 6 of 6 at 0 (3 plain C, 1 do-while, 2 proven at their levers + PARKED); R22 218/218; 4,044 → 4,032.**
|
||||
f9 (`ov_SC02_027_jr_8017D898`, ≈318k tokens, 39 min): `func_801810A0` 14 → 0 (the narrow-load split; the two barrier-faked empty
|
||||
delay slots followed from the allocation; pad 5 → 2 words; 5 levers → 0), `func_8017F498` 15 → 0 (the constant holder declared per
|
||||
arm), `func_80187D18` 31 → 0 on the first `--try` (the same-TU sibling `func_8018830C`'s spelling found by grepping the volume
|
||||
formula: an address alias + the multi-set abs chain), `func_80186C0C` 14 → 0 with one marked do-while (a 3076-vs-3000 `allocno_compare`
|
||||
gap only flow's loop weight can flip — sched1 REWRITES live lengths on the final stream, `sched.c:4911`), `func_80180A54` 8 → 0 only
|
||||
as `void *func(...)` returning the slot (the caller discards it; patch in the pack) → PROVEN at its 2 levers, PARKED (signature),
|
||||
`func_80186CE0` 9 → 0 only as a 20-byte STRUCT COPY (`expand_block_move`, `mips.c:2331`; relocations `D_801AFBD8+4` vs the carved
|
||||
`D_801AFBDC` — identical after linking) → PROVEN at its 3 levers, PARKED (a carve change). `bank_list.sh`: `IDENTICAL … KEPT` ×6
|
||||
(`41ab73ae6`…`c2455f5d3`). f10 (`ov_SC06_006`, 4 classes) launched into the single slot first. METHOD step 23. R22
|
||||
(`.run/P36/s105/r22_i.log`) **`check-all: 218 passed, 0 failed of 218`** (87 s) → baseline at `c2455f5d3` → `lever_census --check:
|
||||
4,032 pin/asm sites, 4,032 marked !FAKE, 0 UNMARKED — OK` (exit 0) → snapshot (4,044 → **4,032**). **Session: 48 of 48 drawn classes
|
||||
at 0.** New parked-by-name: func_80180A54 (signature), func_80186CE0 (carve: one record table for `D_801AFBD8..EC`).
|
||||
|
||||
## 🛑 SESSION CHECKPOINT — S105 (2026-09-11, FINAL — the session's last commit follows this): T0–T6 ☑, **T7 RUNNING at Drew's cap of ONE agent (was two)**. 4,152 → **4,032 sites** this session (−120); 9 TU batches f1–f9, **48 of 48 drawn classes at 0** (35 plain C, 3 do-while-only, 10 minimum-lever incl. 4 parked signature changes + 1 parked carve), ALL banked — **f10 (ov_SC06_006, 4 classes) IN FLIGHT**; generators **R44–R46** + R22 fixed three ways (4 free banks, 3 of them shared headers on 141 objects); R22 `check-all: 218 passed, 0 failed of 218` at `c2455f5d3` | `lever_census --check` exit 0 (4,032 marked, 0 UNMARKED, 0 orphans)
|
||||
|
||||
### 0. How to use this block — READ THIS FIRST
|
||||
A fresh session reads CLAUDE.md's load order, replays this block verbatim, confirms the effort (S105 ran at `/effort high` on Opus 5 1M;
|
||||
every agent on Opus) and executes §2. **Drew's cap is ONE agent at a time** (his last retune, after the S105 close: "continue here. max
|
||||
concurrent agents of 1 now"). What may be in flight when this is read: **f9** (`src/ov_SC02_027/ov_SC02_027_jr_8017D898.c`:
|
||||
func_80180A54, func_80186CE0, func_80186C0C, func_801810A0, func_8017F498, func_80187D18) — a dead session's agent leaves `body.c` +
|
||||
concurrent agents of 1 now"). What may be in flight when this is read: **f10** (`src/ov_SC06_006/ov_SC06_006_jr_8017DB90.c`, 4 classes —
|
||||
`BRIEF_f10.md` names them) — a dead session's agent leaves `body.c` +
|
||||
`mechanism.md` in its packs (R67): `--try` each, bank a 0, record the rest. The session limit cut two agents mid-run and Drew had them RESUMED by SendMessage to their ids (R67 held —
|
||||
every deliverable was on disk); an agent id survives a limit cut within a session, and an agent of a DEAD session is relaunched from
|
||||
its pack. Briefs for the next draws are written and their packs built: `.run/P36/s105/BRIEF_f9.md` (ov_SC02_027_jr_8017D898, 6
|
||||
classes, 5 landed packs in that TU), `BRIEF_f10.md` (ov_SC06_006_jr_8017DB90, 4); `.run/P36/s105/mkbrief.py <id> <tu>` builds the
|
||||
its pack. The next draws: `mkbrief.py f11 <tu>` on the 6-class TUs of `pick.py` (ov_SC06_018, ov_SC07_002, ov_SC03_090, ov_SC06_032; `src/800.c`
|
||||
still has 22 classes, most of them ARG-ONLY — draw its non-arg ones as one batch); `.run/P36/s105/mkbrief.py <id> <tu>` builds the
|
||||
packs + brief for any TU of `pick.json` (regenerate `pick.json` first: `.venv/bin/python .run/P36/s105/pick.py 12`). Launch each as a
|
||||
general-purpose Agent whose prompt names the brief file, the two method files, the read-only rules and the report format (the f1–f8
|
||||
prompts in this session's transcript are the pattern; a paragraph of the previous landing's method notes goes in the prompt).
|
||||
@@ -2123,10 +2137,10 @@ git log --oneline -1 && git status --short | grep -v '^??' | wc -l
|
||||
- The free sweep is SPENT: every residue class has been judged by every family R2–R46 (S105 `s105_r43_*`, `s105_r44r22`, `s105_r45r46`).
|
||||
|
||||
### 2. NEXT
|
||||
1. On Drew's word: launch f9 and f10 (two at a time), then `mkbrief.py f11 <next TU>` from `pick.py`'s order (the 5-class TUs:
|
||||
1. Cap ONE: after f10 lands, `mkbrief.py f11 <next TU>` from `pick.py`'s order (the 5-class TUs:
|
||||
ov_SC03_090, ov_SC06_018, ov_SC06_032, ov_SC07_002, then the 4-class ones), skipping ARG-ONLY (`$4`–`$7`-only pins = the
|
||||
missing-parameter shape → structs phase) and the park list (S104 §2.4 + S105's three signature changes: func_800385C0,
|
||||
func_80029D3C, func_80180FA4 — patches in their packs).
|
||||
missing-parameter shape → structs phase) and the park list (S104 §2.4 + S105's four signature changes func_800385C0, func_80029D3C, func_80180FA4, func_80180A54 and
|
||||
the carve change func_80186CE0 — patches in their packs; add them to `pick.py`'s PARK set).
|
||||
2. Per landing: `--try` each body + `grep -c '__asm__\|register\|FAKE\|volatile'` → next brief → `.run/P36/s105/bank_list.sh`
|
||||
(one line per body `TU FN FILE LABEL MSG`; a `*minlever*` label adds `--allow-residue`; a do-while-only body banks plain) → harvest
|
||||
(a generator with a known-true run on the AGENT'S START TEXT — and run the EXISTING generators on it too when the move is one they
|
||||
|
||||
Reference in New Issue
Block a user