phase-36: the free-bank sweep measured — rung R is replication, not discovery (0 of 300 at cap 40 AND at cap 400; the cap was never binding at ~57 candidates/body; the instrument cleared by hand)

This commit is contained in:
Drew T
2026-09-09 16:10:11 -06:00
parent 1c2b8f2cc8
commit 72a9ab1129
11 changed files with 879 additions and 201 deletions
+3 -3
View File
@@ -237,7 +237,7 @@
}
},
"coverage_ok": true,
"elapsed_s": 38.3,
"elapsed_s": 26.7,
"generated": "2026-09-09",
"gte_levers": {
"direct": 362,
@@ -248,7 +248,7 @@
"via_macro": 100,
"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": "a2da99b13",
"head": "1c2b8f2cc",
"headers": 3181,
"levers_AB": {
"asm": 13445,
@@ -433,7 +433,7 @@
"volatile_qualified": 134,
"zero": 1321
},
"src_stamp": "1ba39deb24f5d168",
"src_stamp": "f461fbfce91eb3dc",
"tus": 4121,
"unclassified": 0,
"union_AD": {
+6 -6
View File
@@ -6,26 +6,26 @@ lever_census: 218 binaries · 4,121 TUs + 3,181 headers · coverage OK · unclas
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 19982 19982 0 9665 1327 2570 19982 0 {'pin': 19982}
B asm 22988 22975 13 9766 1063 2297 13711 9277 {'instruction': 1712, 'keepalive': 2000, 'barrier': 4578, 'launder': 4680, 'gte': 6858, 'gte-lever': 462, 'gte-unsigned': 3, 'asm-body': 13, 'verbatim-body': 2682}
B asm 22988 22975 13 9766 1063 2297 13711 9277 {'instruction': 1712, 'keepalive': 2000, 'gte': 6858, 'launder': 4680, 'barrier': 4578, 'gte-lever': 462, 'gte-unsigned': 3, 'asm-body': 13, 'verbatim-body': 2682}
C volatile 1722 1570 152 628 97 612 14 1708 {'cast': 1510, 'decl-body': 58, 'decl-file': 152, 'param': 2}
D register 50 50 0 47 47 6 0 50 {'register': 50}
E asm-label 7428 1005 6423 737 117 2080 0 7428 {'asm-label': 7428}
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: 15,297 bodies · 2,027 distinct (addresses normalized) · 396 multi-copy classes holding 13,666 bodies · by kind {'ov': 14602, 'shared': 321, 'main': 180, 'md': 182, 'resident': 12}
UNION A–D: 15,297 bodies · 2,027 distinct (addresses normalized) · 396 multi-copy classes holding 13,666 bodies · by kind {'ov': 14602, 'md': 182, 'resident': 12, 'main': 180, 'shared': 321}
THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 33,427 sites in 12,048 bodies (1,755 distinct) · marked !FAKE 33,427 · UNMARKED 0
orphan !FAKE markers (no pin/asm site on the line nor below): 0
GTE levers (clobbers beyond the canonical macro's): 462 sites (100 via a variant macro, 362 direct) · marked 462 · UNMARKED 0 · unsigned GTE statements 3
per-TU asm macro definitions outside the GTE header: 314 {'launder': 154, 'gte': 150, 'instruction': 9, 'barrier': 1} (GTE variants 64)
per-TU asm macro definitions outside the GTE header: 314 {'gte': 150, 'launder': 154, 'instruction': 9, 'barrier': 1} (GTE variants 64)
pins: 19,982 · $0 1,321 · $sp 13 · with initializer 2,776 · volatile-qualified 134 · bare-name 25 · spellings {'__asm__': 19880, 'asm': 102}
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': 4576, 'barrier/via-macro': 2, 'gte/direct': 200, 'gte/via-macro': 6658, 'gte-lever/direct': 362, 'gte-lever/via-macro': 100, 'gte-unsigned/direct': 3, 'instruction/direct': 1690, 'instruction/via-macro': 22, 'keepalive/direct': 2000, 'launder/direct': 4236, 'launder/via-macro': 444, 'verbatim-body/direct': 2682}
instruction mnemonics: {'addu': 966, 'move': 406, 'la': 142, 'lh': 134, 'addiu': 22, 'RTP_SND': 22, '.section': 7, 'lui': 4, 'and': 2, 'mult': 1, 'mfhi': 1, 'sll': 1, 'li': 1, 'lw': 1, 'nop': 1, 'srl': 1}
gte mnemonics: {'gte_ldv0': 757, 'gte_stlvnl': 593, 'gte_stsxy': 447, 'gte_rtps': 437, 'gte_stflg': 415, 'gte_rtpt': 352, 'gte_SetRotMatrix': 246, 'gte_stsxy3': 236, 'gte_rtv0tr': 228, 'gte_SetTransMatrix': 226, 'gte_ldv3c': 184, 'gte_ldv3': 177, 'gte_ldrgb': 164, 'gte_stsv': 161, 'lwc2': 159, 'gte_stsz4': 149, 'gte_stsz3': 147, 'gte_ldIR0z': 134, 'gte_ldIRGB': 134, 'gte_dpcl': 134, 'gte_stORGB': 134, 'gte_stszotz': 134, 'gte_stsxy3_f3': 111, 'gte_stclmv': 108, 'gte_nclip': 108, 'gte_stopz': 108, 'gte_stsxy3c': 108, 'gte_stsxy3_ft3': 79, 'gte_rtir': 75, 'gte_ldclmv': 72}
asm-bearing macro definitions: 314 (20 names, 3 with >1 text) kinds {'launder': 154, 'gte': 150, 'instruction': 9, 'barrier': 1}
gte mnemonics: {'gte_ldv0': 757, 'gte_stlvnl': 593, 'gte_stsxy': 447, 'gte_rtps': 437, 'gte_stflg': 415, 'gte_rtpt': 352, 'gte_SetRotMatrix': 246, 'gte_stsxy3': 236, 'gte_rtv0tr': 228, 'gte_SetTransMatrix': 226, 'gte_ldv3c': 184, 'gte_ldv3': 177, 'gte_ldrgb': 164, 'gte_stsv': 161, 'lwc2': 159, 'gte_stsz4': 149, 'gte_stsz3': 147, 'gte_stszotz': 134, 'gte_ldIR0z': 134, 'gte_ldIRGB': 134, 'gte_dpcl': 134, 'gte_stORGB': 134, 'gte_stsxy3_f3': 111, 'gte_stclmv': 108, 'gte_nclip': 108, 'gte_stopz': 108, 'gte_stsxy3c': 108, 'gte_stsxy3_ft3': 79, 'gte_rtir': 75, 'gte_ldclmv': 72}
asm-bearing macro definitions: 314 (20 names, 3 with >1 text) kinds {'gte': 150, 'launder': 154, 'instruction': 9, 'barrier': 1}
controls (R39):
src/800.c func_800226C0 pins got 14 expected 45 N-A
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 38.3 s
elapsed 26.7 s
+188 -188
View File
@@ -1,7 +1,7 @@
{
"head": "aef115948",
"head": "1c2b8f2cc",
"stamp": "b44c5a8a3423",
"generated": "2026-09-09 15:18",
"generated": "2026-09-09 16:02",
"aliases": [
"main",
"ov_SC03_014",
@@ -21,207 +21,207 @@
"main": {
"objects": 85,
"identical": 85,
"seconds": 13.021000000000003,
"mean_s": 0.153
"seconds": 6.565999999999998,
"mean_s": 0.077
},
"ov_SC03_014": {
"objects": 32,
"identical": 32,
"seconds": 6.852000000000002,
"mean_s": 0.214
"seconds": 4.4,
"mean_s": 0.138
},
"ov_SC03_015": {
"objects": 32,
"identical": 32,
"seconds": 6.595999999999999,
"mean_s": 0.206
"seconds": 4.311000000000001,
"mean_s": 0.135
},
"ov_SC04_011": {
"objects": 28,
"identical": 28,
"seconds": 5.715,
"mean_s": 0.204
"seconds": 3.6819999999999995,
"mean_s": 0.131
}
},
"per_object_seconds": {
"build/src/800.o": 0.914,
"build/src/800_b.o": 0.242,
"build/src/800_b_2.o": 0.599,
"build/src/800_b_o0a.o": 0.179,
"build/src/800_c.o": 0.343,
"build/src/800b2.o": 0.21,
"build/src/apicard1.o": 0.217,
"build/src/apicard2.o": 0.153,
"build/src/apicard3.o": 0.233,
"build/src/apicard4.o": 0.224,
"build/src/apicard5.o": 0.281,
"build/src/apicard6.o": 0.212,
"build/src/apicard7.o": 0.22,
"build/src/boot.o": 0.223,
"build/src/gap.o": 0.211,
"build/src/libapi1.o": 0.191,
"build/src/libapi2.o": 0.083,
"build/src/libc2_1.o": 0.127,
"build/src/libc2_2.o": 0.103,
"build/src/libcd1.o": 0.196,
"build/src/libcd2.o": 0.127,
"build/src/libetc.o": 0.115,
"build/src/libgpu.o": 0.211,
"build/src/libgpu2.o": 0.131,
"build/src/libgs1.o": 0.144,
"build/src/libgs2.o": 0.107,
"build/src/libgs3.o": 0.122,
"build/src/libgs4.o": 0.152,
"build/src/libgs5.o": 0.074,
"build/src/libgs6.o": 0.139,
"build/src/libgs7.o": 0.093,
"build/src/libgs8.o": 0.084,
"build/src/libgte1.o": 0.155,
"build/src/libgte10.o": 0.078,
"build/src/libgte11.o": 0.106,
"build/src/libgte12.o": 0.119,
"build/src/libgte13.o": 0.081,
"build/src/libgte14.o": 0.197,
"build/src/libgte15.o": 0.076,
"build/src/libgte16.o": 0.068,
"build/src/libgte17.o": 0.171,
"build/src/libgte18.o": 0.08,
"build/src/libgte19.o": 0.088,
"build/src/libgte2.o": 0.098,
"build/src/libgte20.o": 0.099,
"build/src/libgte21.o": 0.234,
"build/src/libgte22.o": 0.088,
"build/src/libgte23.o": 0.08,
"build/src/libgte24.o": 0.196,
"build/src/libgte25.o": 0.081,
"build/src/libgte26.o": 0.143,
"build/src/libgte27.o": 0.165,
"build/src/libgte28.o": 0.082,
"build/src/libgte29.o": 0.086,
"build/src/libgte3.o": 0.073,
"build/src/libgte30.o": 0.089,
"build/src/libgte4.o": 0.127,
"build/src/libgte5.o": 0.142,
"build/src/libgte6.o": 0.084,
"build/src/libgte7.o": 0.119,
"build/src/libgte8.o": 0.121,
"build/src/libgte9.o": 0.101,
"build/src/libmcrd1.o": 0.157,
"build/src/libmcrd2.o": 0.092,
"build/src/libpad1.o": 0.188,
"build/src/libpad2.o": 0.204,
"build/src/sgap.o": 0.11,
"build/src/sgap_2.o": 0.12,
"build/src/sgap_3.o": 0.086,
"build/src/sgap_4.o": 0.108,
"build/src/sgap_5.o": 0.136,
"build/src/sgap_6.o": 0.149,
"build/src/sgap_8.o": 0.148,
"build/src/snd1.o": 0.15,
"build/src/snd10.o": 0.199,
"build/src/snd11.o": 0.085,
"build/src/snd12.o": 0.197,
"build/src/snd2.o": 0.187,
"build/src/snd3.o": 0.071,
"build/src/snd4.o": 0.098,
"build/src/snd5.o": 0.069,
"build/src/snd6.o": 0.081,
"build/src/snd7.o": 0.073,
"build/src/snd8.o": 0.076,
"build/src/snd9.o": 0.15,
"build/src/ov_SC03_014/ov_SC03_014.o": 0.157,
"build/src/ov_SC03_014/ov_SC03_014_after.o": 0.685,
"build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.701,
"build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.082,
"build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.071,
"build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.146,
"build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.356,
"build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.141,
"build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.165,
"build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.08,
"build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.323,
"build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.172,
"build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.227,
"build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.112,
"build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.099,
"build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.106,
"build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.129,
"build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.709,
"build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.328,
"build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.123,
"build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.248,
"build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.075,
"build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.157,
"build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.092,
"build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.346,
"build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.243,
"build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.126,
"build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.317,
"build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.067,
"build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.1,
"build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.07,
"build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.099,
"build/src/ov_SC03_015/ov_SC03_015.o": 0.201,
"build/src/ov_SC03_015/ov_SC03_015_after.o": 0.741,
"build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.498,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.063,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.083,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.136,
"build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.165,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.16,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.129,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.089,
"build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.207,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.077,
"build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.214,
"build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.102,
"build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.132,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.11,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.234,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.614,
"build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.506,
"build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.131,
"build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.241,
"build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.071,
"build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.176,
"build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.079,
"build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.358,
"build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.246,
"build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.086,
"build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.343,
"build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.075,
"build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.072,
"build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.139,
"build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.118,
"build/src/ov_SC04_011/ov_SC04_011.o": 0.21,
"build/src/ov_SC04_011/ov_SC04_011_after.o": 0.539,
"build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.432,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.103,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.061,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.162,
"build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.183,
"build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.136,
"build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.102,
"build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.07,
"build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.283,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.095,
"build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.255,
"build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.137,
"build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.123,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.087,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.167,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.481,
"build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.278,
"build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.13,
"build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.217,
"build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.15,
"build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.141,
"build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.104,
"build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.159,
"build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.668,
"build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.096,
"build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.146
"build/src/800.o": 0.713,
"build/src/800_b.o": 0.066,
"build/src/800_b_2.o": 0.316,
"build/src/800_b_o0a.o": 0.055,
"build/src/800_c.o": 0.18,
"build/src/800b2.o": 0.105,
"build/src/apicard1.o": 0.064,
"build/src/apicard2.o": 0.077,
"build/src/apicard3.o": 0.074,
"build/src/apicard4.o": 0.114,
"build/src/apicard5.o": 0.112,
"build/src/apicard6.o": 0.067,
"build/src/apicard7.o": 0.057,
"build/src/boot.o": 0.104,
"build/src/gap.o": 0.06,
"build/src/libapi1.o": 0.064,
"build/src/libapi2.o": 0.048,
"build/src/libc2_1.o": 0.059,
"build/src/libc2_2.o": 0.047,
"build/src/libcd1.o": 0.064,
"build/src/libcd2.o": 0.057,
"build/src/libetc.o": 0.062,
"build/src/libgpu.o": 0.052,
"build/src/libgpu2.o": 0.064,
"build/src/libgs1.o": 0.048,
"build/src/libgs2.o": 0.062,
"build/src/libgs3.o": 0.059,
"build/src/libgs4.o": 0.058,
"build/src/libgs5.o": 0.053,
"build/src/libgs6.o": 0.075,
"build/src/libgs7.o": 0.063,
"build/src/libgs8.o": 0.062,
"build/src/libgte1.o": 0.061,
"build/src/libgte10.o": 0.052,
"build/src/libgte11.o": 0.054,
"build/src/libgte12.o": 0.067,
"build/src/libgte13.o": 0.06,
"build/src/libgte14.o": 0.058,
"build/src/libgte15.o": 0.052,
"build/src/libgte16.o": 0.056,
"build/src/libgte17.o": 0.056,
"build/src/libgte18.o": 0.056,
"build/src/libgte19.o": 0.06,
"build/src/libgte2.o": 0.06,
"build/src/libgte20.o": 0.056,
"build/src/libgte21.o": 0.057,
"build/src/libgte22.o": 0.067,
"build/src/libgte23.o": 0.06,
"build/src/libgte24.o": 0.058,
"build/src/libgte25.o": 0.056,
"build/src/libgte26.o": 0.063,
"build/src/libgte27.o": 0.062,
"build/src/libgte28.o": 0.066,
"build/src/libgte29.o": 0.063,
"build/src/libgte3.o": 0.063,
"build/src/libgte30.o": 0.061,
"build/src/libgte4.o": 0.066,
"build/src/libgte5.o": 0.07,
"build/src/libgte6.o": 0.066,
"build/src/libgte7.o": 0.072,
"build/src/libgte8.o": 0.079,
"build/src/libgte9.o": 0.074,
"build/src/libmcrd1.o": 0.083,
"build/src/libmcrd2.o": 0.072,
"build/src/libpad1.o": 0.079,
"build/src/libpad2.o": 0.077,
"build/src/sgap.o": 0.076,
"build/src/sgap_2.o": 0.07,
"build/src/sgap_3.o": 0.067,
"build/src/sgap_4.o": 0.077,
"build/src/sgap_5.o": 0.061,
"build/src/sgap_6.o": 0.063,
"build/src/sgap_8.o": 0.069,
"build/src/snd1.o": 0.074,
"build/src/snd10.o": 0.062,
"build/src/snd11.o": 0.06,
"build/src/snd12.o": 0.056,
"build/src/snd2.o": 0.065,
"build/src/snd3.o": 0.061,
"build/src/snd4.o": 0.06,
"build/src/snd5.o": 0.061,
"build/src/snd6.o": 0.062,
"build/src/snd7.o": 0.061,
"build/src/snd8.o": 0.072,
"build/src/snd9.o": 0.066,
"build/src/ov_SC03_014/ov_SC03_014.o": 0.125,
"build/src/ov_SC03_014/ov_SC03_014_after.o": 0.501,
"build/src/ov_SC03_014/ov_SC03_014_jr_8012ACE0.o": 0.37,
"build/src/ov_SC03_014/ov_SC03_014_jr_80135888.o": 0.059,
"build/src/ov_SC03_014/ov_SC03_014_jr_80135A4C.o": 0.061,
"build/src/ov_SC03_014/ov_SC03_014_jr_80135D20.o": 0.12,
"build/src/ov_SC03_014/ov_SC03_014_jr_801380E0.o": 0.159,
"build/src/ov_SC03_014/ov_SC03_014_jr_8013C98C.o": 0.111,
"build/src/ov_SC03_014/ov_SC03_014_jr_8013F350.o": 0.076,
"build/src/ov_SC03_014/ov_SC03_014_jr_8013FFD8.o": 0.065,
"build/src/ov_SC03_014/ov_SC03_014_jr_80140608.o": 0.157,
"build/src/ov_SC03_014/ov_SC03_014_jr_8015444C.o": 0.067,
"build/src/ov_SC03_014/ov_SC03_014_jr_80154C24.o": 0.18,
"build/src/ov_SC03_014/ov_SC03_014_jr_801588CC.o": 0.084,
"build/src/ov_SC03_014/ov_SC03_014_jr_80159C84.o": 0.061,
"build/src/ov_SC03_014/ov_SC03_014_jr_8015A3C8.o": 0.071,
"build/src/ov_SC03_014/ov_SC03_014_jr_8015AE2C.o": 0.09,
"build/src/ov_SC03_014/ov_SC03_014_jr_8015C32C.o": 0.448,
"build/src/ov_SC03_014/ov_SC03_014_jr_8016AB6C.o": 0.229,
"build/src/ov_SC03_014/ov_SC03_014_jr_80171B4C.o": 0.088,
"build/src/ov_SC03_014/ov_SC03_014_jr_801734BC.o": 0.185,
"build/src/ov_SC03_014/ov_SC03_014_jr_801789AC.o": 0.058,
"build/src/ov_SC03_014/ov_SC03_014_jr_80178D40.o": 0.095,
"build/src/ov_SC03_014/ov_SC03_014_jr_8017A4AC.o": 0.06,
"build/src/ov_SC03_014/ov_SC03_014_jr_8017AE2C.o": 0.153,
"build/src/ov_SC03_014/ov_SC03_014_jr_8017EB7C.o": 0.197,
"build/src/ov_SC03_014/ov_SC03_014_jr_80184440.o": 0.047,
"build/src/ov_SC03_014/ov_SC03_014_jr_801848E4.o": 0.269,
"build/src/ov_SC03_014/ov_SC03_014_o0b.o": 0.049,
"build/src/ov_SC03_014/ov_SC03_014_o0c.o": 0.058,
"build/src/ov_SC03_014/ov_SC03_014_o0d.o": 0.049,
"build/src/ov_SC03_014/ov_SC03_014_o0e.o": 0.058,
"build/src/ov_SC03_015/ov_SC03_015.o": 0.116,
"build/src/ov_SC03_015/ov_SC03_015_after.o": 0.497,
"build/src/ov_SC03_015/ov_SC03_015_jr_8012ACE0.o": 0.357,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135888.o": 0.047,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135A4C.o": 0.049,
"build/src/ov_SC03_015/ov_SC03_015_jr_80135D20.o": 0.104,
"build/src/ov_SC03_015/ov_SC03_015_jr_801380E0.o": 0.152,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013C98C.o": 0.1,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013F350.o": 0.073,
"build/src/ov_SC03_015/ov_SC03_015_jr_8013FFD8.o": 0.058,
"build/src/ov_SC03_015/ov_SC03_015_jr_80140608.o": 0.175,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015444C.o": 0.066,
"build/src/ov_SC03_015/ov_SC03_015_jr_80154C24.o": 0.155,
"build/src/ov_SC03_015/ov_SC03_015_jr_801588CC.o": 0.084,
"build/src/ov_SC03_015/ov_SC03_015_jr_80159C84.o": 0.067,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015A3C8.o": 0.066,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015AE2C.o": 0.086,
"build/src/ov_SC03_015/ov_SC03_015_jr_8015C32C.o": 0.442,
"build/src/ov_SC03_015/ov_SC03_015_jr_8016AB6C.o": 0.255,
"build/src/ov_SC03_015/ov_SC03_015_jr_80171B4C.o": 0.092,
"build/src/ov_SC03_015/ov_SC03_015_jr_801734BC.o": 0.174,
"build/src/ov_SC03_015/ov_SC03_015_jr_801789AC.o": 0.055,
"build/src/ov_SC03_015/ov_SC03_015_jr_80178D40.o": 0.09,
"build/src/ov_SC03_015/ov_SC03_015_jr_8017A4AC.o": 0.059,
"build/src/ov_SC03_015/ov_SC03_015_jr_8017AE2C.o": 0.143,
"build/src/ov_SC03_015/ov_SC03_015_jr_8017EB7C.o": 0.193,
"build/src/ov_SC03_015/ov_SC03_015_jr_80184440.o": 0.041,
"build/src/ov_SC03_015/ov_SC03_015_jr_801848E4.o": 0.278,
"build/src/ov_SC03_015/ov_SC03_015_o0b.o": 0.056,
"build/src/ov_SC03_015/ov_SC03_015_o0c.o": 0.057,
"build/src/ov_SC03_015/ov_SC03_015_o0d.o": 0.051,
"build/src/ov_SC03_015/ov_SC03_015_o0e.o": 0.073,
"build/src/ov_SC04_011/ov_SC04_011.o": 0.114,
"build/src/ov_SC04_011/ov_SC04_011_after.o": 0.396,
"build/src/ov_SC04_011/ov_SC04_011_jr_8012ACE0.o": 0.317,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135888.o": 0.053,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135A4C.o": 0.048,
"build/src/ov_SC04_011/ov_SC04_011_jr_80135D20.o": 0.108,
"build/src/ov_SC04_011/ov_SC04_011_jr_801380E0.o": 0.141,
"build/src/ov_SC04_011/ov_SC04_011_jr_8013C98C.o": 0.108,
"build/src/ov_SC04_011/ov_SC04_011_jr_8013F350.o": 0.063,
"build/src/ov_SC04_011/ov_SC04_011_jr_8013FFD8.o": 0.062,
"build/src/ov_SC04_011/ov_SC04_011_jr_80140608.o": 0.152,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015444C.o": 0.065,
"build/src/ov_SC04_011/ov_SC04_011_jr_80154C24.o": 0.144,
"build/src/ov_SC04_011/ov_SC04_011_jr_801588CC.o": 0.08,
"build/src/ov_SC04_011/ov_SC04_011_jr_80159C84.o": 0.062,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015A3C8.o": 0.06,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015AE2C.o": 0.088,
"build/src/ov_SC04_011/ov_SC04_011_jr_8015C32C.o": 0.347,
"build/src/ov_SC04_011/ov_SC04_011_jr_8016AB6C.o": 0.203,
"build/src/ov_SC04_011/ov_SC04_011_jr_80171B4C.o": 0.089,
"build/src/ov_SC04_011/ov_SC04_011_jr_801734BC.o": 0.161,
"build/src/ov_SC04_011/ov_SC04_011_jr_801789AC.o": 0.058,
"build/src/ov_SC04_011/ov_SC04_011_jr_80178D40.o": 0.086,
"build/src/ov_SC04_011/ov_SC04_011_jr_8017A4AC.o": 0.059,
"build/src/ov_SC04_011/ov_SC04_011_jr_8017AE2C.o": 0.092,
"build/src/ov_SC04_011/ov_SC04_011_jr_8017D494.o": 0.417,
"build/src/ov_SC04_011/ov_SC04_011_o0b.o": 0.051,
"build/src/ov_SC04_011/ov_SC04_011_o0c.o": 0.058
},
"ok": true,
"seconds": 3.5
"seconds": 2.2
}
File diff suppressed because one or more lines are too long
+15
View File
@@ -0,0 +1,15 @@
delever --recipes: control 3/3 — the identity splice reproduces its text and the untouched file its object
delever --recipes: 300 RESIDUE bodies in 244 TU(s) + 1 header(s), cap 400, 20 worker(s)
[25/300] 0 closed · 1083 compiles · 0.3 min · 83 bodies/min
[50/300] 0 closed · 2221 compiles · 0.4 min · 112 bodies/min
[75/300] 0 closed · 3310 compiles · 0.6 min · 123 bodies/min
[100/300] 0 closed · 4374 compiles · 0.9 min · 115 bodies/min
[125/300] 0 closed · 5474 compiles · 1.0 min · 121 bodies/min
[150/300] 0 closed · 6618 compiles · 1.2 min · 124 bodies/min
[175/300] 0 closed · 7762 compiles · 1.5 min · 115 bodies/min
[200/300] 0 closed · 8782 compiles · 1.9 min · 107 bodies/min
[225/300] 0 closed · 10687 compiles · 3.1 min · 72 bodies/min
[250/300] 0 closed · 12603 compiles · 3.9 min · 63 bodies/min
[275/300] 0 closed · 14423 compiles · 4.5 min · 61 bodies/min
[300/300] 0 closed · 17140 compiles · 6.0 min · 50 bodies/min
recipes: 0 of 300 bodies closed lever-free (300 NEEDED sites in the 300 drawn, 0 with no candidate), 17140 compiles in 6.0 min
+16
View File
@@ -0,0 +1,16 @@
delever: the census describes another tree (stamp 1ba39deb24f5d168); rerun tools/lever_census.py --sites -j 16 — running the census now
delever --recipes: control 3/3 — the identity splice reproduces its text and the untouched file its object
delever --recipes: 300 RESIDUE bodies in 244 TU(s) + 1 header(s), cap 40, 10 worker(s)
[25/300] 0 closed · 1024 compiles · 0.3 min · 94 bodies/min
[50/300] 0 closed · 2131 compiles · 0.6 min · 81 bodies/min
[75/300] 0 closed · 3159 compiles · 0.9 min · 83 bodies/min
[100/300] 0 closed · 4185 compiles · 1.3 min · 80 bodies/min
[125/300] 0 closed · 5182 compiles · 1.5 min · 82 bodies/min
[150/300] 0 closed · 6222 compiles · 1.7 min · 86 bodies/min
[175/300] 0 closed · 7262 compiles · 2.3 min · 76 bodies/min
[200/300] 0 closed · 8230 compiles · 2.6 min · 78 bodies/min
[225/300] 0 closed · 9246 compiles · 3.0 min · 76 bodies/min
[250/300] 0 closed · 10134 compiles · 3.3 min · 76 bodies/min
[275/300] 0 closed · 11118 compiles · 3.9 min · 71 bodies/min
[300/300] 0 closed · 12110 compiles · 4.6 min · 66 bodies/min
recipes: 0 of 300 bodies closed lever-free (300 NEEDED sites in the 300 drawn, 0 with no candidate), 12110 compiles in 4.6 min
+5 -2
View File
@@ -2,7 +2,7 @@
> **Generated by `tools/cookbook_index.py` — do not hand-edit** (R33). Regenerate after adding a cookbook section.
>
> `docs/matching-cookbook.md` is ~716 KB / 1171 sections. Grepping it blind is how three P30 wave-1 agents each "discovered" an idiom that was already written down. **Start here, then read the section.** A section appears under every symptom it addresses.
> `docs/matching-cookbook.md` is ~716 KB / 1172 sections. Grepping it blind is how three P30 wave-1 agents each "discovered" an idiom that was already written down. **Start here, then read the section.** A section appears under every symptom it addresses.
**How to use:** name what you SEE in the diff (a stolen delay slot, an extra `la`, a swapped register pair, a `conflicting types` error), find that symptom below, read those sections first. If nothing fits, THEN grind — and add a section when you win.
@@ -1316,7 +1316,7 @@
- **§500** — ★★★ — THE T3 WAVE HARVEST (P32 T3, 2026-09-05): 31 one-agent-per-function drafters → 20 MATCH / 9 NEAR / 2 FAIL, every closer, two NEW named gcc mechanisms, and the wave-process defects <sub>L36793</sub>
- **§453** — ★★★ — ONE SOURCE PER UNIQUE FUNCTION: THE INCLUDE-AT-SITE SHARE, ITS GATE, AND THE FOUR DEFECTS THAT SHAPED IT (P35 S94–S96) <sub>L37555</sub>
### process, measurement & doctrine (142)
### process, measurement & doctrine (143)
- **§8e** — The jtbl ALIGNMENT LAW + the pad-spec filter — multi-table .rodata spans (Phase 29, byte-proven; `.run/probe_jtbl/verdict.md`) <sub>L549</sub>
- **§3-The** — mechanism: game-code dedup is SOURCE-LEVEL, not an object swap (R-D1, the key lesson) <sub>L945</sub>
@@ -1460,6 +1460,7 @@
- **§463** — 🔴 SPILL SLOTS ARE 8 BYTES, AND THE §41b "LOAD ABOVE THE PROLOGUE" WALL IS REFUTED <sub>L35681</sub>
- **§479** — ★★★ — WHERE THE PERMUTER ACTUALLY PAYS: A MEASURED YIELD CURVE (P31 S77, 8 candidates) <sub>L35811</sub>
- **§501** — ★★★ — A LEVER THAT MEASURES WORSE MAY BE A CASCADE: READ THE `.loop` DUMP FOR THE DESIRABILITY FLIP BEFORE DISCARDING IT (P32 T4b, `main:func_800391D4`, a pinned wall banked by a Fable agent) <sub>L37151</sub>
- **§454a** — the recipe rung's real shape: replication, not discovery (S99, measured) <sub>L37671</sub>
### (unbucketed — title matched no symptom vocabulary) (338)
@@ -2976,6 +2977,7 @@
- **§501** — ★★★ — A LEVER THAT MEASURES WORSE MAY BE A CASCADE: READ THE `.loop` DUMP FOR THE DESIRABILITY FLIP BEFORE DISCARDING IT (P32 T4b, `main:func_800391D4`, a pinned wall banked by a Fable agent) <sub>L37151</sub>
- **§453** — ★★★ — ONE SOURCE PER UNIQUE FUNCTION: THE INCLUDE-AT-SITE SHARE, ITS GATE, AND THE FOUR DEFECTS THAT SHAPED IT (P35 S94–S96) <sub>L37555</sub>
- **§454** — Rung D and rung R: taking a lever off a body that still has to compile to the same bytes (Phase 36 T6) <sub>L37604</sub>
- **§454a** — the recipe rung's real shape: replication, not discovery (S99, measured) <sub>L37671</sub>
---
@@ -4159,3 +4161,4 @@ Notes routinely quote that as a section id. This table resolves it. Grep bait: `
| L37151 | §501 | ★★★ — A LEVER THAT MEASURES WORSE MAY BE A CASCADE: READ THE `.loop` DUMP FOR THE DESIRABI |
| L37555 | §453 | ★★★ — ONE SOURCE PER UNIQUE FUNCTION: THE INCLUDE-AT-SITE SHARE, ITS GATE, AND THE FOUR DE |
| L37604 | §454 | Rung D and rung R: taking a lever off a body that still has to compile to the same bytes ( |
| L37671 | §454a | the recipe rung's real shape: replication, not discovery (S99, measured) |
+9
View File
@@ -118,6 +118,15 @@ cost**: on the last four functions of the frontier, *every* pin came off byte-id
| **D** permuter | decomp-permuter seeded with the **lever-free** body against the target bytes | ~12 min per exemplar | **5 of 16 exemplars, 665 of 2,131 bodies behind them, 0.69 h** |
| **E** agents | one agent per surviving class exemplar, with the pack | tokens | Phase 36 T7 |
**RUNG R IS A REPLICATION ENGINE, NOT A DISCOVERY ENGINE — measured, S99.** On a class whose shape rung D had already found it
closed **134 of 134 bodies in 6 minutes**. On 300 residue bodies where nobody had found the shape yet it closed **0 of 300 at
`--cap 40` (12,110 compiles, 4.6 min) and 0 of 300 at `--cap 400` (17,140 compiles, 6.0 min)`**. Two things make that a real
result rather than a budget problem: the instrument was checked on one body by hand (every candidate COMPILES and returns
DIFFERS — nothing was erroring out silently), and 17,140 compiles over 300 bodies is ~57 candidates each, so **the cap was
never the binding constraint** — ten times the depth produced 42% more candidates and closed nothing. The recipe rung banks a
KNOWN shape across a class for free; it has nothing to say about a shape that is not in its list. Growing it means finding
more shapes (rung D, then agents), and harvesting each one back into the rung so it sweeps the population for free.
**The two rungs feed each other.** Rung D's wins are not exotic: each is a small nameable source shape — a statement wrapped
in a block (`flag = 0;` → `do { flag = 0; } while (0);`), a single-set temp inlined at its use. Every one of them became a
rung-R recipe the same session, and rung R then banks the whole class **mechanically, as a one-line diff in the real
+15
View File
@@ -37667,3 +37667,18 @@ the starting distance, not the site count: the closers started 8 and 12 mismatch
started at 70, 99, 105 and 131 — every one a body where removing a hand-placed `instruction` lever changed the instruction COUNT and
shifted everything after it (`mine=103 ins, target=106`). They still improved a long way (131→35, 105→18, 99→37, 70→24), so they are
seeds for a longer run or for T7's agents, not walls. `--max-start N` triages by that number instead of spending a search on it.
### §454a — the recipe rung's real shape: replication, not discovery (S99, measured)
`delever --recipes` closed **134 of 134** bodies of the class rung D had just cracked, in 6.0 minutes, every one by the same
`R7 do-while` — and **0 of 300** residue bodies drawn by fewest-NEEDED-sites, at both `--cap 40` (12,110 compiles, 4.6 min)
and `--cap 400` (17,140 compiles, 6.0 min). The zero is not a budget: 17,140 compiles over 300 bodies is ~57 candidates per
body, so the cap was never binding — ten times the depth added 42% more candidates and closed nothing — and a by-hand check of
one body (`src/800.c CdReadSectorReadyCB`, one `$18` pin) showed every candidate COMPILING and returning DIFFERS, not
COMPILE-ERROR. Nor was it the ordering: candidates are sorted by distance to the NEEDED site (the lever says where to look)
and the result was identical before and after that change.
**The lesson for any mechanical-rewrite rung:** it multiplies a shape you already have across the population that shares it —
which is worth an enormous amount when a class has 134 copies — and it discovers nothing. Budget it as replication. The
discovery budget is the search rung and the agents, and the flywheel is that every shape either of them finds becomes a
recipe, after which the population that shares it is free forever.
+18
View File
@@ -642,6 +642,24 @@ accumulate here as the phase produces them.**
this was fixed, then 132); the permuter's winner is TIDIED before it is offered (pycparser's two-space indent and the corpse
`;` where a statement was inlined away), with the tidy judged like any other candidate.
- **S100 — the free-bank sweep MEASURED, and it is spent at the current recipe set (zero tokens; cookbook §454a).**
Rung R made TU-PARALLEL first (a worker owns a whole translation unit — the oracle writes each candidate to the real source
path and names its scratch object after the object it builds; shared headers stay serial because two headers can share an
includer's object; a file's bodies are judged BOTTOM-UP so a bank never shifts a body still to come; the in-flight map is
per-file under the lock; ledger rows are appended per body, not at the end, so an interrupted sweep cannot leave a banked
body whose row never landed). Candidates are also ordered by distance to the NEEDED site — the lever says where to look.
**The measurement, same 300-body draw both times:** `recipes: 0 of 300 bodies closed lever-free … 12,110 compiles in 4.6 min`
at `--cap 40`, and `0 of 300 … 17,140 compiles in 6.0 min` at `--cap 400`. **The cap was never the binding constraint** —
17,140 compiles over 300 bodies is ~57 candidates each, so ten times the depth bought 42 % more candidates and closed
nothing — and the instrument was cleared by hand on one body (`src/800.c CdReadSectorReadyCB`, one `$18` pin): every
candidate COMPILES and returns DIFFERS, none errors out silently (R40).
**What that establishes for T7's shape:** rung R is a REPLICATION engine (134 of 134 on a class whose shape rung D had just
found, 6.0 min) and not a DISCOVERY engine (0 of 300 where no shape is known). So T7's real question is not "how many bodies"
but **"how many distinct SHAPES are left"** — every shape discovered makes its whole class free, and the 134-copy classes at
the head of the draw are worth 130 bodies per discovery. Throughput for planning: 82 bodies/min at 10 workers, 123 at 20
(nice'd; Drew measured ~20-40 % CPU at 10 and asked twice for more), so a full-residue pass is ~2 h — affordable, but it buys
nothing until the recipe set grows.
## 🛑 SESSION CHECKPOINT — S99 (2026-09-09): T0–T5 ☑ **T6 ☑** — all committed (this close on top of `1c2355054`); NEXT = **T7, the reshaping waves — and T7 STARTS ONLY ON DREW'S DIRECT APPROVAL IN THE SESSION THAT RUNS IT** (his words, twice: the `/effort ultracode` toggle is NOT approval); until he gives it, the drawable work is a PARALLELISED rung-R sweep (§2) | the number: **33,427 sites** (19,982 pins + 13,445 asm) in 12,048 bodies · marked 33,427 · UNMARKED 0 · orphans 0 · GTE levers 462 — `lever_census --check` OK · `lever_progress --check` OK (3 milestones)
### 0. How to use this block
+4 -2
View File
@@ -1720,7 +1720,10 @@ def recipes(a):
path.write_text(cand2, errors="surrogateescape")
walk = lc.walk_file(path.read_text(errors="surrogateescape"), tu, tu.endswith(".h"))
row["nhash_after"] = next((x["nhash"] for x in walk["defs"] if x["name"] == fn), None)
out.append(row)
# THE ROW IS WRITTEN WHEN THE BODY IS JUDGED, not at the end of the run. A killed sweep has already written its
# banked bodies into the tree; holding their rows until the end would leave the census calling them lever-free
# while the ledger still called them RESIDUE — and a multi-hour sweep WILL be interrupted (S99 killed one).
ledger_append([row])
with _LOCK:
state["tried"] += 1
state["compiles"] += n_c
@@ -1739,7 +1742,6 @@ def recipes(a):
rows += res
for n, tu in enumerate(hdrs): # serial: two headers can share an includer's object
rows += work_tu(tu, "rh")
ledger_append(rows)
needed = sum(len([s for s in r.get("sites", []) if s.get("verdict") == "NEEDED"]) for _, r in todo)
print(f"recipes: {state['won']} of {state['tried']} bodies closed lever-free ({needed} NEEDED sites in the "
f"{len(todo)} drawn, {state['skipped']} with no candidate), {state['compiles']} compiles in "