diff --git a/README.md b/README.md index ebec3ce775..cec95049e3 100644 --- a/README.md +++ b/README.md @@ -27,9 +27,9 @@ originals; nothing "functionally equivalent" counts. What the repository claims One source per unique function (Phase 35): 102,991 function bodies written once in C (3,173 of them shared headers instantiated 262,594 times); 139 duplicate copies remain in 41 ledgered classes (declaration conflicts left for the types phase); 38 functions whose bytes vary per binary share one text through the text tier (2,030 sites); 1,645 same-address copies of 377 tiny bodies inside the cross-address classes are deferred to the names phase. -Levers off (Phase 36, snapshot 2026-10-01): 1,868 register pins and 1,861 asm statements remain in 1,837 functions (661 distinct bodies), 3,729 of them marked `// !FAKE:`; 1,589 volatile qualifiers and 50 bare `register` keywords are censused; 6,447 GTE coprocessor operations and 22 whole-body assembly routines kept inside C shells (2,682 sites; the original's scratchpad stack-switch trampolines, one copy per overlay, listed in the verbatim manifest) are not levers and are excluded. +Levers off (Phase 36, snapshot 2026-10-02): 1,868 register pins and 1,843 asm statements remain in 1,832 functions (660 distinct bodies), 3,711 of them marked `// !FAKE:`; 1,587 volatile qualifiers and 50 bare `register` keywords are censused; 6,463 GTE coprocessor operations and 22 whole-body assembly routines kept inside C shells (2,682 sites; the original's scratchpad stack-switch trampolines, one copy per overlay, listed in the verbatim manifest) are not levers and are excluded. -Types (snapshot P39, 2026-10-01): 502,988 raw pointer-cast dereferences remain in 69,492 functions (four forms; 36,853 typed cast-member accesses and 18,892 address-of casts counted apart); 1,650 struct definitions (1,021 in the canonical header, 326 in `include/`, 600 block-scope frames inside `.c` functions, 29 in per-function shared headers, 0 at `.c` file scope) over 1,024 names and 523 distinct layouts; 53 duplicate classes covering 496 names, 53 of them listed with a cause in `docs/struct-twins.md` (0 gating); 0 variant camps, 0 dead names (3 kept with a cause), 0 `pad` names, 0 parse-error declarations; 229 lying call declarations (an empty K&R list or a type narrower than the callee's definition) over 24 callees; the struct map clusters the cast sites into 19,123 types by evidence (99.2 % of sites assigned). +Types (snapshot P39, 2026-10-02): 336,219 raw pointer-cast dereferences remain in 50,865 functions (four forms; 173,103 typed cast-member accesses and 18,889 address-of casts counted apart); 1,650 struct definitions (1,021 in the canonical header, 326 in `include/`, 600 block-scope frames inside `.c` functions, 29 in per-function shared headers, 0 at `.c` file scope) over 1,024 names and 523 distinct layouts; 53 duplicate classes covering 496 names, 53 of them listed with a cause in `docs/struct-twins.md` (0 gating); 0 variant camps, 0 dead names (2 kept with a cause), 0 `pad` names, 0 parse-error declarations; 229 lying call declarations (an empty K&R list or a type narrower than the callee's definition) over 24 callees; the struct map clusters the cast sites into 17,965 types by evidence (98.8 % of sites assigned). _Generated by `tools/progress.py --readme` from `docs/progress.json` — numbers are never typed by hand._ diff --git a/docs/progress.fleet.md b/docs/progress.fleet.md index 3d394e98a9..6c6cf4921f 100644 --- a/docs/progress.fleet.md +++ b/docs/progress.fleet.md @@ -7,7 +7,7 @@ FLEET fn-count byte-ident: 363677 / 363677 = 100.00% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay) FLEET instr-weighted : 13492113 / 13492113 = 100.0% (shipped .text across main + resident + 216 overlays; the decomp.dev-DISPLAY number) FLEET distinct-code(uniq): 5820205 / 5820205 = 100.0% (90984/90984 unique fns; the DISTINCT-RE number) -MAIN game-code weighted : 45150 / 45150 = 100.0% (INCLUDED in the fleet numbers above since 2026-07-22 — roadmap §1 metrics contract; build-derived sig (make sig-main) dated 2026-10-01; boundaries INDEPENDENTLY VERIFIED since P31 S77 — `make sig-main-oracle` + `make audit-corpus`: 0 phantom, 0 truncated, 0 pad-tail) +MAIN game-code weighted : 45150 / 45150 = 100.0% (INCLUDED in the fleet numbers above since 2026-07-22 — roadmap §1 metrics contract; build-derived sig (make sig-main) dated 2026-10-02; boundaries INDEPENDENTLY VERIFIED since P31 S77 — `make sig-main-oracle` + `make audit-corpus`: 0 phantom, 0 truncated, 0 pad-tail) (fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 13446963 / 13446963 = 100.0%) FLEET REAL substantive : 350530 (of which dedup-shared 251924 via 3173 groups / 262594 instances) diff --git a/docs/progress.json b/docs/progress.json index 392b1c642f..044a897202 100644 --- a/docs/progress.json +++ b/docs/progress.json @@ -49,24 +49,24 @@ "deferred_same_address_texts": 377, "deferred_same_address_copies": 1645, "levers": { - "date": "2026-10-01", + "date": "2026-10-02", "what": "compiler-forcing constructs left in the C: register pins + asm statements (the classes Phase 36 drives to 0; GTE coprocessor ops and whole-body hand-asm routines excluded), with the volatile/register qualifiers censused", - "sites": 3729, + "sites": 3711, "pins": 1868, - "asm_statements": 1861, - "bodies": 1837, - "distinct_bodies": 661, - "marked_fake": 3729, + "asm_statements": 1843, + "bodies": 1832, + "distinct_bodies": 660, + "marked_fake": 3711, "unmarked": 0, - "volatile_sites": 1589, + "volatile_sites": 1587, "register_keyword_sites": 50, - "gte_sites": 6447, + "gte_sites": 6463, "hand_asm_routines_in_c_shells": 22, "hand_asm_routine_sites": 2682 }, "types": { - "date": "2026-10-01", - "head": "313ee50403", + "date": "2026-10-02", + "head": "2407750392", "snapshot": "P39", "census": ".run/P39/census/type_census.json", "what": "the structs phases' counters: raw pointer-cast dereferences in four forms (P *(T*)(\u2026), I *(T*)ident, X ((T*)e)[i], M M2C_FIELD), struct definitions and their duplicate classes, lying call declarations, and the struct map's types", @@ -77,22 +77,22 @@ "duplicate_classes_gating": 0, "duplicate_classes_listed": 53, "dead_names": 0, - "dead_names_kept": 3, + "dead_names_kept": 2, "pad_names": 0, "parse_error_declarations": 0, - "raw_cast_sites": 502988, + "raw_cast_sites": 336219, "raw_cast_forms": { - "P": 408979, - "I": 60666, - "X": 13800, - "A": 18892, - "C": 36853, - "M": 19543, - "K": 12 + "P": 257469, + "I": 49831, + "X": 13790, + "K": 20975, + "A": 18889, + "C": 173103, + "M": 15129 }, - "raw_cast_bodies": 69492, - "address_of_sites": 18892, - "typed_cast_member_sites": 36853, + "raw_cast_bodies": 50865, + "address_of_sites": 18889, + "typed_cast_member_sites": 173103, "absolute_address_casts": 0, "struct_definitions": 1650, "canonical_definitions": 1021, @@ -101,13 +101,13 @@ "duplicate_classes": 53, "duplicate_names": 496, "variant_names": 0, - "dead_canonical_names": 56, + "dead_canonical_names": 55, "lying_declarations": 229, "lying_callees": 24, "asm_label_aliases": 5148, "multi_spelled_callees": 3773, - "struct_map_types": 19123, - "struct_map_explained_pct": 99.2 + "struct_map_types": 17965, + "struct_map_explained_pct": 98.8 } }, "corrections": [ diff --git a/docs/readability-progress.tsv b/docs/readability-progress.tsv index 201b0cd810..b4c355cb1d 100644 --- a/docs/readability-progress.tsv +++ b/docs/readability-progress.tsv @@ -6,3 +6,4 @@ date label commit definitions narrow_decls callees kr_empty narrow pinned_rows p 2026-09-12 t4 274223396dc7b5e7eedd8c8f96c82b0e80738c6a 15653 8830 950 2997 5833 13 10 411848 177902 503013 409006 60664 13800 19543 18912 36681 7255 1179 5989 527 206 2823 18741 99.2 5002 147 2026-09-12 t4-close bd7d32ec2316b2a150ad41b0ac9d6da3786dff92 16094 1796 76 1373 423 1 1 411820 177902 502985 408978 60664 13800 19543 18888 36681 7255 1179 5989 527 206 2823 18213 99.2 5262 199 418 96 2026-09-30 P38 close c82a24899467ab87461bcdf28f4d320cc309c6a3 16094 229 24 216 13 0 0 411816 176269 502983 408974 60666 13800 19543 18892 36853 1650 1021 600 523 53 496 19122 99.2 5293 200 418 96 +2026-10-02 P3.39 T5: forms I/M closed 2407750392ce8a73f18f5c1fad968e78845bc108 16094 229 24 216 13 0 0 260306 320402 336219 257469 49831 13790 15129 18889 173103 1650 1021 600 523 53 496 17965 98.8 5293 200 418 96 diff --git a/docs/readability.md b/docs/readability.md index a5f81f2806..0bf1441be5 100644 --- a/docs/readability.md +++ b/docs/readability.md @@ -15,6 +15,7 @@ | 2026-09-12 | t4 | `274223396` | 8830 | 2997 | 5833 | 13 | 411848 | 177902 | **503013** | 36681 | 7255 (1179 / 5989) | 527 | 206 / 2823 | 18741 (99.2 %) | 5002 | — | | 2026-09-12 | t4-close | `bd7d32ec2` | 1796 | 1373 | 423 | 1 | 411820 | 177902 | **502985** | 36681 | 7255 (1179 / 5989) | 527 | 206 / 2823 | 18213 (99.2 %) | 5262 | 418 | | 2026-09-30 | P38 close | `c82a24899` | 229 | 216 | 13 | 0 | 411816 | 176269 | **502983** | 36853 | 1650 (1021 / 600) | 523 | 53 / 496 | 19122 (99.2 %) | 5293 | 418 | +| 2026-10-02 | P3.39 T5: forms I/M closed | `240775039` | 229 | 216 | 13 | 0 | 260306 | 320402 | **336219** | 173103 | 1650 (1021 / 600) | 523 | 53 / 496 | 17965 (98.8 %) | 5293 | 418 | **How to read it.** A *lying declaration* is a call site whose in-scope declaration names fewer parameters than the callee's own definition. It is not a style problem: on this processor an argument travels in a diff --git a/docs/story-timeline.md b/docs/story-timeline.md index 7c972501fc..d6b9efa23a 100644 --- a/docs/story-timeline.md +++ b/docs/story-timeline.md @@ -102,6 +102,7 @@ | 2026-09-12 | 111 | | 218 | 100.0% | 100.0% | 100.0% | 100.0% | 0 | 789 / 2091 | 3,730 | 502,985 | 7,255 | | 2026-09-29 | 40 | P37 (v2.3.0) | 218 | 100.0% | 100.0% | 100.0% | 100.0% | 0 | 789 / 2091 | 3,730 | — | — | | 2026-09-30 | 93 | | 218 | 100.0% | 100.0% | 100.0% | 100.0% | 0 | — | — | 502,983 | 1,650 | -| 2026-10-01 | 13 | | 218 | 100.0% | 100.0% | 100.0% | 100.0% | 0 | — | — | — | — | +| 2026-10-01 | 73 | | 218 | 100.0% | 100.0% | 100.0% | 100.0% | 0 | — | — | — | — | +| 2026-10-02 | 76 | | 218 | 100.0% | 100.0% | 100.0% | 100.0% | 0 | — | — | 336,219 | 1,650 | -81 dated rows · phase ticks from the 38 PhaseEnds · the chart: `docs/story-timeline.svg`. +82 dated rows · phase ticks from the 38 PhaseEnds · the chart: `docs/story-timeline.svg`. diff --git a/docs/story-timeline.svg b/docs/story-timeline.svg index d3fa149d6e..54fe438dac 100644 --- a/docs/story-timeline.svg +++ b/docs/story-timeline.svg @@ -6,10 +6,10 @@ 50% 75% 100% -Jul 2026 -Aug 2026 -Sep 2026 -Oct 2026 +Jul 2026 +Aug 2026 +Sep 2026 +Oct 2026 @@ -20,44 +20,44 @@ P7 - - - - -P15 - - - - - - - - -P23 - - - -P26 - - - -P29 - -P30 - -P31 - -P32 - - - - - - -2026-07-22: main enters the denominators -instruction-weighted (all binaries) -distinct code (each body once) -function count + + + + +P15 + + + + + + + + +P23 + + + +P26 + + + +P29 + +P30 + +P31 + +P32 + + + + + + +2026-07-22: main enters the denominators +instruction-weighted (all binaries) +distinct code (each body once) +function count After 100 % — the Gen3 debts as a share of their first measurement (every lever increment; the two raw-cast instruments) 0% 25% @@ -86,7 +86,7 @@ register pins + asm statements (the lever series, 98 increments): 53,221 → 3,730 raw pointer-cast dereferences — the one-form regex count (until the census, 2026-09-12): 414,148 → 411,850 - -raw pointer-cast dereferences — the four-form census (2026-09-12 →; a new instrument, its own 100 %): 503,016 → 502,983 + +raw pointer-cast dereferences — the four-form census (2026-09-12 →; a new instrument, its own 100 %): 503,016 → 336,219 generated by tools/timeline.py — keyed by date diff --git a/docs/struct-map.md b/docs/struct-map.md index 8640b122ef..251c8f30f5 100644 --- a/docs/struct-map.md +++ b/docs/struct-map.md @@ -1,210 +1,210 @@ # The struct map — the types the fleet's cast sites need (Phase 37 T1) -> **Generated by `tools/type_census.py` at `7845da8f03` (2026-10-01T17:32:55Z); never typed (R75).** Every raw pointer-cast dereference in `src/` was assigned to a base (a parameter, a local, a global by value or by address, an absolute address) and the bases were clustered by EVIDENCE only — the same global symbol, an argument passed to a callee's parameter, an assignment or return, a pointer field read, a shared body's fleet-wide identity — never by a similar offset signature. Each cluster is one type the tree needs. Names are placeholders (`Unkstruct_`: the lowest global instance's address, else the lowest member function's); fields are placeholders (`unk`) until Phase 38 cites evidence. +> **Generated by `tools/type_census.py` at `2407750392` (2026-10-02T21:02:21Z); never typed (R75).** Every raw pointer-cast dereference in `src/` was assigned to a base (a parameter, a local, a global by value or by address, an absolute address) and the bases were clustered by EVIDENCE only — the same global symbol, an argument passed to a callee's parameter, an assignment or return, a pointer field read, a shared body's fleet-wide identity — never by a similar offset signature. Each cluster is one type the tree needs. Names are placeholders (`Unkstruct_`: the lowest global instance's address, else the lowest member function's); fields are placeholders (`unk`) until Phase 38 cites evidence. -**19123 types explain 498868 of 502988 dereference sites (99.2 %); 4120 sites have a base the census could not classify; 857 types carry a width conflict.** Merges by evidence: param 38862, assign 16777, arg 10823, field 9896, ret-of 4334, return 1524, assign& 1183, arg& 270. +**17965 types explain 332308 of 336219 dereference sites (98.8 %); 3911 sites have a base the census could not classify; 813 types carry a width conflict.** Merges by evidence: param 39296, assign 19429, arg 10512, field 6555, ret-of 6018, return 1535, assign& 1401, arg& 253, nested 9. | # | type | sites | bodies | fields | size ≥ | width conflicts (+sign mixes) | instance globals | pointer globals | |---:|---|---:|---:|---:|---:|---:|---|---| -| 1 | `Unkstruct_800B5CB8` | 107580 | 11184 | 134 | 0x10c | 50 (+55 sign) | D_800B5CB8, D_800D3888, D_80181448, D_80181538… | D_8006386C, D_80074778, D_80074780, D_80074784… | -| 2 | `Unkstruct_80126B58` | 65397 | 17047 | 175 | 0x24c | 50 (+60 sign) | D_80126B58 | D_80126B58 | -| 3 | `Unkstruct_cb638a45` | 6477 | 381 | 6 | 0x10 | 0 (+0 sign) | | | +| 1 | `Unkstruct_800D3888` | 19185 | 4303 | 122 | 0x10c | 50 (+46 sign) | D_800D3888, D_80181538, D_801818AC, D_8018192C… | D_8006386C, D_80074778, D_80074780, D_80074784… | +| 2 | `Unkstruct_cb638a45` | 6477 | 381 | 6 | 0x10 | 0 (+0 sign) | | | +| 3 | `Unkstruct_80126B58` | 5482 | 2947 | 165 | 0x24c | 40 (+45 sign) | D_80126B58 | D_80126B58 | | 4 | `Unkstruct_dac960ce` | 4464 | 124 | 13 | 0x24c | 0 (+2 sign) | | | -| 5 | `Unkstruct_0caecd54` | 4340 | 124 | 23 | 0xfe | 0 (+1 sign) | | | +| 5 | `Unkstruct_a5d21dec` | 4340 | 124 | 23 | 0xfe | 0 (+1 sign) | | | | 6 | `Unkstruct_f8ed2b9f` | 4061 | 4061 | 1 | 0x217 | 0 (+0 sign) | | | -| 7 | `Unkstruct_a32b99a1` | 3936 | 123 | 8 | 0x4b | 0 (+1 sign) | | | +| 7 | `Unkstruct_cedd385d` | 3936 | 123 | 8 | 0x4b | 0 (+1 sign) | | | | 8 | `Unkstruct_8e3dbe51` | 3930 | 131 | 5 | 0x4c | 0 (+1 sign) | | | -| 9 | `Unkstruct_8014A1B0` | 3778 | 542 | 13 | 0xfe | 0 (+1 sign) | | | -| 10 | `Unkstruct_80128EA8` | 3311 | 632 | 18 | 0x38 | 0 (+13 sign) | | | -| 11 | `Unkstruct_57a28935` | 3271 | 196 | 26 | 0xa4 | 3 (+9 sign) | | | -| 12 | `Unkstruct_1fa9e810` | 3144 | 131 | 3 | 0x49 | 0 (+0 sign) | | | -| 13 | `Unkstruct_30b21035` | 3100 | 124 | 13 | 0x54 | 0 (+0 sign) | | | -| 14 | `Unkstruct_80126948` | 2986 | 832 | 34 | 0xa4 | 0 (+10 sign) | D_80126948, D_80126E60 | D_80114EE8, D_801151D4, D_80126948, D_80126E60… | -| 15 | `Unkstruct_adc0bee4` | 2646 | 126 | 8 | 0x34 | 0 (+3 sign) | | | -| 16 | `Unkstruct_198fc7cc` | 2580 | 129 | 16 | 0x38 | 3 (+1 sign) | | | -| 17 | `Unkstruct_801439FC` | 2489 | 981 | 57 | 0x10c | 9 (+22 sign) | | | -| 18 | `Unkstruct_80130D48` | 2382 | 587 | 25 | 0x64 | 6 (+3 sign) | | D_80072C84, D_80078E78 | -| 19 | `Unkstruct_ed8f1335` | 2356 | 124 | 18 | 0x24 | 0 (+0 sign) | | | -| 20 | `Unkstruct_8016B4F8` | 2140 | 535 | 5 | 0x30 | 0 (+0 sign) | | | -| 21 | `Unkstruct_80139C7C` | 2111 | 265 | 14 | 0x44 | 0 (+3 sign) | | | -| 22 | `Unkstruct_b047cdf2` | 2108 | 124 | 6 | 0x20 | 0 (+0 sign) | | | -| 23 | `Unkstruct_2729e670` | 2091 | 123 | 6 | 0x4b | 0 (+0 sign) | | | -| 24 | `Unkstruct_dd542e54` | 2016 | 126 | 7 | 0x18 | 0 (+0 sign) | | | -| 25 | `Unkstruct_f49880fd` | 2000 | 125 | 6 | 0x54 | 0 (+1 sign) | | | -| 26 | `Unkstruct_a8d34bce` | 1948 | 1948 | 1 | 0x215 | 0 (+0 sign) | | | -| 27 | `Unkstruct_568f7bda` | 1875 | 125 | 9 | 0x38 | 0 (+0 sign) | | | -| 28 | `Unkstruct_8016DF5C` | 1791 | 131 | 9 | 0x38 | 0 (+3 sign) | | | -| 29 | `Unkstruct_cd1bacd2` | 1764 | 126 | 10 | 0x38 | 0 (+0 sign) | | | -| 30 | `Unkstruct_8011F7A8` | 1742 | 270 | 7 | 0x11e | 0 (+0 sign) | D_8011F7A8 | | -| 31 | `Unkstruct_84612d18` | 1722 | 123 | 8 | 0x4b | 0 (+0 sign) | | | -| 32 | `Unkstruct_57db4d07` | 1664 | 128 | 13 | 0x0 | 13 (+0 sign) | | | -| 33 | `Unkstruct_4692fc17` | 1612 | 124 | 4 | 0x1e | 0 (+3 sign) | | | -| 34 | `Unkstruct_eda88e53` | 1596 | 133 | 6 | 0x54 | 6 (+0 sign) | | | -| 35 | `Unkstruct_8012D3B4` | 1588 | 183 | 23 | 0x24 | 16 (+9 sign) | | D_80074808, D_800A5E60 | -| 36 | `Unkstruct_4e09b6d9` | 1572 | 131 | 9 | 0x32 | 0 (+1 sign) | | | -| 37 | `Unkstruct_23e45db5` | 1512 | 126 | 11 | 0x16 | 0 (+0 sign) | | | -| 38 | `Unkstruct_47470ce3` | 1488 | 124 | 6 | 0x1e | 0 (+0 sign) | | | -| 39 | `Unkstruct_b5c0372a` | 1441 | 131 | 9 | 0x58 | 0 (+0 sign) | | | -| 40 | `Unkstruct_0980b9f0` | 1441 | 131 | 4 | 0x49 | 0 (+0 sign) | | | -| 41 | `Unkstruct_ba6e2e9f` | 1439 | 1439 | 1 | 0x4 | 0 (+0 sign) | | | -| 42 | `Unkstruct_a68f6d03` | 1364 | 124 | 9 | 0x14 | 0 (+0 sign) | | | -| 43 | `Unkstruct_8fdd92d1` | 1300 | 130 | 4 | 0x24 | 2 (+0 sign) | | | -| 44 | `Unkstruct_110cf29e` | 1250 | 125 | 7 | 0x2c | 0 (+0 sign) | | | -| 45 | `Unkstruct_4db8cec8` | 1240 | 124 | 8 | 0x36 | 0 (+0 sign) | | | -| 46 | `Unkstruct_f0bc3b7a` | 1240 | 124 | 7 | 0x100 | 0 (+0 sign) | | | -| 47 | `Unkstruct_297e7547` | 1240 | 124 | 10 | 0x58 | 0 (+0 sign) | | | -| 48 | `Unkstruct_dd59c999` | 1240 | 124 | 6 | 0x38 | 0 (+2 sign) | | | -| 49 | `Unkstruct_919ca3ea` | 1230 | 123 | 6 | 0x10 | 0 (+0 sign) | | | -| 50 | `Unkstruct_a459e3e5` | 1220 | 122 | 6 | 0x34 | 0 (+0 sign) | | | -| 51 | `Unkstruct_8014CA00` | 1219 | 407 | 4 | 0x2e | 0 (+3 sign) | | | -| 52 | `Unkstruct_74787850` | 1206 | 1073 | 1 | 0x2 | 0 (+1 sign) | | D_801152A8 | -| 53 | `Unkstruct_f9a7989e` | 1179 | 131 | 3 | 0x36 | 0 (+1 sign) | | | -| 54 | `Unkstruct_0b30043d` | 1128 | 376 | 3 | 0x5e | 0 (+0 sign) | | | -| 55 | `Unkstruct_301381d4` | 1116 | 124 | 3 | 0x36 | 0 (+1 sign) | | | -| 56 | `Unkstruct_0ced46e2` | 1116 | 124 | 5 | 0xfe | 0 (+0 sign) | | | -| 57 | `Unkstruct_4857195e` | 1107 | 123 | 5 | 0x34 | 0 (+0 sign) | | | -| 58 | `Unkstruct_50a3f6b4` | 1040 | 130 | 3 | 0x36 | 0 (+0 sign) | | | -| 59 | `Unkstruct_800B9A02` | 992 | 434 | 1 | 0x2 | 0 (+0 sign) | D_800B9A02 | | -| 60 | `Unkstruct_f74e3af7` | 992 | 124 | 5 | 0xfe | 0 (+0 sign) | | | -| 61 | `Unkstruct_b6c7c603` | 931 | 133 | 7 | 0x20 | 1 (+0 sign) | | | -| 62 | `Unkstruct_b774eeeb` | 917 | 131 | 4 | 0x41 | 0 (+0 sign) | | | -| 63 | `Unkstruct_859b4fab` | 910 | 130 | 4 | 0xb0 | 0 (+0 sign) | | | -| 64 | `Unkstruct_801463A0` | 907 | 210 | 13 | 0x54 | 0 (+1 sign) | | D_80126B78 | -| 65 | `Unkstruct_6d3f3f5d` | 889 | 127 | 6 | 0x38 | 0 (+0 sign) | | | -| 66 | `Unkstruct_6d856e9d` | 889 | 127 | 5 | 0x1e | 3 (+1 sign) | | | -| 67 | `Unkstruct_d0c6cce6` | 889 | 127 | 4 | 0x38 | 0 (+0 sign) | | | -| 68 | `Unkstruct_1e86c313` | 882 | 126 | 4 | 0x8 | 0 (+0 sign) | | | -| 69 | `Unkstruct_a41ec127` | 882 | 126 | 6 | 0x38 | 0 (+0 sign) | | | -| 70 | `Unkstruct_17738e2c` | 876 | 33 | 32 | 0xa4 | 12 (+5 sign) | | | -| 71 | `Unkstruct_3f697924` | 875 | 125 | 5 | 0x38 | 0 (+0 sign) | | | -| 72 | `Unkstruct_e505dcd3` | 868 | 124 | 4 | 0x8 | 0 (+0 sign) | | | -| 73 | `Unkstruct_fe02110c` | 868 | 124 | 3 | 0x10 | 0 (+2 sign) | | | -| 74 | `Unkstruct_92677d11` | 861 | 123 | 5 | 0x240 | 0 (+0 sign) | | | -| 75 | `Unkstruct_86465c2c` | 861 | 123 | 7 | 0x20 | 0 (+0 sign) | | | -| 76 | `Unkstruct_ffd2397c` | 854 | 122 | 5 | 0x34 | 0 (+0 sign) | | | -| 77 | `Unkstruct_801270C0` | 821 | 820 | 1 | 0x2 | 0 (+0 sign) | D_801270C0 | | -| 78 | `Unkstruct_2932a0a7` | 798 | 133 | 6 | 0x12 | 5 (+0 sign) | | | -| 79 | `Unkstruct_0a8f505b` | 790 | 83 | 14 | 0x10c | 0 (+5 sign) | | | -| 80 | `Unkstruct_12f4cee2` | 786 | 131 | 5 | 0x28 | 0 (+0 sign) | | | -| 81 | `Unkstruct_d2490774` | 786 | 131 | 3 | 0xb0 | 0 (+0 sign) | | | -| 82 | `Unkstruct_80135260` | 780 | 130 | 3 | 0x54 | 0 (+0 sign) | | | -| 83 | `Unkstruct_b196f9c0` | 768 | 128 | 5 | 0x14 | 1 (+0 sign) | | | -| 84 | `Unkstruct_36c327cf` | 762 | 127 | 2 | 0x18 | 0 (+0 sign) | | | -| 85 | `Unkstruct_6cd0e445` | 756 | 126 | 2 | 0x10 | 0 (+0 sign) | | | -| 86 | `Unkstruct_c0b9c5d5` | 750 | 125 | 6 | 0x10 | 0 (+0 sign) | | | -| 87 | `Unkstruct_64375b18` | 744 | 124 | 5 | 0xa0 | 0 (+0 sign) | | | -| 88 | `Unkstruct_438adcd1` | 744 | 124 | 5 | 0x14 | 0 (+0 sign) | | | -| 89 | `Unkstruct_97b6f459` | 744 | 124 | 5 | 0x28 | 0 (+0 sign) | | | -| 90 | `Unkstruct_38975874` | 744 | 124 | 4 | 0x84 | 0 (+0 sign) | | | -| 91 | `Unkstruct_76b1caf3` | 744 | 124 | 2 | 0x3 | 0 (+0 sign) | | | -| 92 | `Unkstruct_8016BBE0` | 690 | 139 | 9 | 0x38 | 0 (+0 sign) | | | -| 93 | `Unkstruct_80146A6C` | 680 | 137 | 7 | 0x2c | 0 (+0 sign) | | | -| 94 | `Unkstruct_800AF630` | 671 | 537 | 3 | 0xa3dc | 0 (+0 sign) | D_800AF630 | | -| 95 | `Unkstruct_8012C284` | 668 | 533 | 1 | 0x2 | 0 (+1 sign) | | D_80126720 | -| 96 | `Unkstruct_80115128` | 667 | 534 | 1 | 0x2 | 0 (+0 sign) | D_80115128 | | -| 97 | `Unkstruct_896c95f7` | 665 | 133 | 3 | 0x5e | 0 (+0 sign) | | | -| 98 | `Unkstruct_61789347` | 665 | 133 | 0 | 0x0 | 0 (+0 sign) | | | -| 99 | `Unkstruct_5f294c87` | 665 | 133 | 0 | 0x0 | 0 (+0 sign) | | | -| 100 | `Unkstruct_801345F8` | 665 | 133 | 0 | 0x0 | 0 (+0 sign) | | | -| 101 | `Unkstruct_801345F8` | 665 | 133 | 0 | 0x0 | 0 (+0 sign) | | | -| 102 | `Unkstruct_801152A0` | 665 | 399 | 1 | 0x2 | 0 (+0 sign) | D_801152A0 | | -| 103 | `Unkstruct_fdd04bae` | 650 | 130 | 3 | 0x38 | 0 (+0 sign) | | | -| 104 | `Unkstruct_eb8b6fbf` | 645 | 129 | 5 | 0xfe | 0 (+0 sign) | | | -| 105 | `Unkstruct_90d0825c` | 645 | 129 | 5 | 0x1c | 1 (+0 sign) | | | -| 106 | `Unkstruct_27c177f1` | 645 | 129 | 4 | 0x34 | 0 (+0 sign) | | | -| 107 | `Unkstruct_4f9f60b8` | 630 | 126 | 4 | 0x78 | 0 (+0 sign) | | | -| 108 | `Unkstruct_7a31a22f` | 630 | 126 | 2 | 0x19c | 0 (+0 sign) | | | -| 109 | `Unkstruct_187abeff` | 630 | 126 | 5 | 0x68 | 0 (+0 sign) | | | -| 110 | `Unkstruct_f9fa1fb7` | 630 | 126 | 4 | 0x20 | 0 (+0 sign) | | | -| 111 | `Unkstruct_20d4328b` | 630 | 126 | 4 | 0x38 | 0 (+0 sign) | | | -| 112 | `Unkstruct_d94ab931` | 625 | 125 | 4 | 0x6 | 2 (+1 sign) | | | -| 113 | `Unkstruct_7ef9c9ef` | 625 | 125 | 4 | 0x6 | 2 (+1 sign) | | | -| 114 | `Unkstruct_ad0948d5` | 625 | 125 | 5 | 0x1c | 0 (+0 sign) | | | -| 115 | `Unkstruct_fccefc1f` | 625 | 125 | 2 | 0x1a | 0 (+0 sign) | | | -| 116 | `Unkstruct_57ae03d1` | 620 | 124 | 2 | 0x2c | 0 (+0 sign) | | | -| 117 | `Unkstruct_af1e9d57` | 620 | 248 | 4 | 0x64 | 0 (+0 sign) | | | -| 118 | `Unkstruct_172cbd29` | 620 | 124 | 2 | 0x1fc | 0 (+0 sign) | | | -| 119 | `Unkstruct_2c2c1d2e` | 620 | 124 | 4 | 0x24 | 0 (+0 sign) | | | -| 120 | `Unkstruct_aaf4c4dd` | 615 | 615 | 1 | 0x16 | 0 (+0 sign) | | | -| 121 | `Unkstruct_293d71dc` | 600 | 75 | 0 | 0x0 | 0 (+0 sign) | | | -| 122 | `Unkstruct_78eaa73c` | 553 | 7 | 15 | 0x10a | 0 (+7 sign) | | | -| 123 | `Unkstruct_8011512E` | 532 | 133 | 1 | 0x2 | 0 (+0 sign) | D_8011512E | | -| 124 | `Unkstruct_8016BFA8` | 532 | 133 | 4 | 0x24 | 0 (+0 sign) | | | -| 125 | `Unkstruct_7476116e` | 532 | 133 | 1 | 0x4 | 0 (+0 sign) | | | -| 126 | `Unkstruct_30befa8c` | 520 | 130 | 3 | 0xfe | 0 (+0 sign) | | | -| 127 | `Unkstruct_01082f7a` | 520 | 520 | 1 | 0x4 | 0 (+0 sign) | | | -| 128 | `Unkstruct_db0ee441` | 516 | 129 | 4 | 0x38 | 0 (+0 sign) | | | -| 129 | `Unkstruct_290ce261` | 504 | 126 | 3 | 0xfe | 0 (+0 sign) | | | -| 130 | `Unkstruct_d6100faa` | 504 | 126 | 3 | 0x20 | 0 (+0 sign) | | | -| 131 | `Unkstruct_fc43506c` | 504 | 126 | 3 | 0xe | 0 (+0 sign) | | | -| 132 | `Unkstruct_7cb40b10` | 500 | 500 | 1 | 0x4 | 0 (+0 sign) | | | -| 133 | `Unkstruct_4e078af8` | 496 | 124 | 2 | 0x4 | 0 (+2 sign) | | | -| 134 | `Unkstruct_494cef68` | 496 | 124 | 2 | 0x188 | 0 (+0 sign) | | | -| 135 | `Unkstruct_93df0322` | 496 | 124 | 4 | 0x38 | 0 (+0 sign) | | | -| 136 | `Unkstruct_3b2b6e45` | 496 | 124 | 4 | 0x38 | 0 (+0 sign) | | | -| 137 | `Unkstruct_9e228c39` | 492 | 123 | 3 | 0x6 | 0 (+0 sign) | | | -| 138 | `Unkstruct_a05973fa` | 492 | 123 | 3 | 0x2c | 0 (+0 sign) | | | -| 139 | `Unkstruct_48c11385` | 441 | 21 | 5 | 0x68 | 0 (+0 sign) | | | -| 140 | `Unkstruct_a55a221e` | 428 | 428 | 1 | 0x215 | 0 (+0 sign) | | | -| 141 | `Unkstruct_02864986` | 420 | 420 | 1 | 0x2 | 0 (+1 sign) | | D_80115158 | -| 142 | `Unkstruct_80131B14` | 404 | 383 | 5 | 0x32 | 0 (+0 sign) | | | -| 143 | `Unkstruct_8011511A` | 404 | 146 | 1 | 0x2 | 0 (+1 sign) | D_8011511A | | -| 144 | `Unkstruct_8016B5C0` | 399 | 133 | 2 | 0x1c | 0 (+0 sign) | | | -| 145 | `Unkstruct_8016BFA8` | 399 | 133 | 3 | 0x6 | 0 (+0 sign) | | | -| 146 | `Unkstruct_8011F7F0` | 399 | 133 | 3 | 0x42 | 0 (+0 sign) | D_8011F7F0 | | -| 147 | `Unkstruct_630777a3` | 399 | 266 | 2 | 0x5 | 0 (+0 sign) | | | -| 148 | `Unkstruct_1649b9a7` | 392 | 28 | 8 | 0x38 | 0 (+2 sign) | | | -| 149 | `Unkstruct_ea5ed765` | 390 | 130 | 1 | 0xdb | 0 (+0 sign) | | | -| 150 | `Unkstruct_80135260` | 390 | 130 | 3 | 0x6 | 0 (+0 sign) | | | -| 151 | `Unkstruct_a472a6ba` | 387 | 129 | 3 | 0x1c | 0 (+0 sign) | | | -| 152 | `Unkstruct_f2440762` | 384 | 128 | 1 | 0x4 | 0 (+0 sign) | | | -| 153 | `Unkstruct_80164BDC` | 384 | 128 | 5 | 0x64 | 0 (+1 sign) | | | -| 154 | `Unkstruct_8c2ab96e` | 384 | 128 | 3 | 0x8 | 0 (+0 sign) | | | -| 155 | `Unkstruct_d448adea` | 384 | 48 | 0 | 0x0 | 0 (+0 sign) | | | -| 156 | `Unkstruct_2552224c` | 381 | 127 | 3 | 0x10 | 0 (+0 sign) | | | -| 157 | `Unkstruct_e79a0730` | 378 | 126 | 2 | 0x24 | 0 (+0 sign) | | | -| 158 | `Unkstruct_1a8e907f` | 378 | 126 | 1 | 0x4 | 0 (+0 sign) | | | -| 159 | `Unkstruct_e1c73ac0` | 378 | 126 | 3 | 0x6 | 0 (+0 sign) | | | -| 160 | `Unkstruct_8ba4da0a` | 378 | 126 | 3 | 0x1c | 0 (+0 sign) | | | -| 161 | `Unkstruct_93e44aed` | 378 | 126 | 2 | 0x1c | 0 (+0 sign) | | | -| 162 | `Unkstruct_8dd0822e` | 378 | 126 | 3 | 0xe | 0 (+0 sign) | | | -| 163 | `Unkstruct_89684c99` | 375 | 125 | 3 | 0x6 | 0 (+0 sign) | | | -| 164 | `Unkstruct_d0754cca` | 375 | 125 | 2 | 0x24 | 0 (+0 sign) | | | -| 165 | `Unkstruct_89f82b52` | 372 | 124 | 3 | 0x1ca | 0 (+0 sign) | | | -| 166 | `Unkstruct_924d03d6` | 372 | 124 | 3 | 0x6 | 0 (+0 sign) | | | -| 167 | `Unkstruct_7fd6458b` | 372 | 124 | 1 | 0x40 | 0 (+0 sign) | | | -| 168 | `Unkstruct_92a372de` | 372 | 124 | 2 | 0x24 | 0 (+0 sign) | | | -| 169 | `Unkstruct_4a31f01c` | 372 | 124 | 3 | 0x1c | 0 (+0 sign) | | | -| 170 | `Unkstruct_39de3511` | 372 | 124 | 3 | 0x12 | 0 (+0 sign) | | | -| 171 | `Unkstruct_1b4331f0` | 369 | 123 | 3 | 0x5e | 0 (+0 sign) | | | -| 172 | `Unkstruct_75e9a6af` | 369 | 123 | 3 | 0x10 | 0 (+0 sign) | | | -| 173 | `Unkstruct_c59d6379` | 366 | 14 | 24 | 0xa2 | 3 (+3 sign) | | | -| 174 | `Unkstruct_5c635b4b` | 364 | 14 | 13 | 0x34 | 0 (+0 sign) | | | -| 175 | `Unkstruct_800AE620` | 325 | 322 | 0 | 0x0 | 0 (+0 sign) | D_800AE620 | | -| 176 | `Unkstruct_814e4d87` | 300 | 75 | 0 | 0x0 | 0 (+0 sign) | | | -| 177 | `Unkstruct_09b02bee` | 300 | 75 | 2 | 0x4 | 0 (+0 sign) | | | -| 178 | `Unkstruct_1ef3b11b` | 280 | 10 | 7 | 0x10c | 0 (+1 sign) | | | -| 179 | `Unkstruct_80115188` | 274 | 270 | 1 | 0x4 | 0 (+0 sign) | D_80115188 | | -| 180 | `Unkstruct_80129CF8` | 273 | 90 | 33 | 0xa435 | 0 (+5 sign) | | D_800AF630 | -| 181 | `Unkstruct_a2d6c72b` | 273 | 21 | 4 | 0x100 | 0 (+0 sign) | | | -| 182 | `Unkstruct_80078EB4` | 270 | 137 | 1 | 0x2 | 0 (+0 sign) | D_80078EB4 | | -| 183 | `Unkstruct_80115118` | 268 | 265 | 1 | 0x2 | 0 (+1 sign) | D_80115118 | | -| 184 | `Unkstruct_801152B0` | 268 | 268 | 0 | 0x0 | 0 (+0 sign) | D_801152B0 | | -| 185 | `Unkstruct_801269F4` | 267 | 134 | 1 | 0x2 | 0 (+0 sign) | D_801269F4 | | -| 186 | `Unkstruct_8012C1DC` | 267 | 134 | 3 | 0x1c | 0 (+0 sign) | | | -| 187 | `Unkstruct_8011515C` | 267 | 267 | 1 | 0x2 | 0 (+1 sign) | D_8011515C | | -| 188 | `Unkstruct_1db7b82d` | 266 | 133 | 1 | 0x2e | 0 (+0 sign) | | | -| 189 | `Unkstruct_6bd63257` | 266 | 133 | 2 | 0x1e | 0 (+0 sign) | | | -| 190 | `Unkstruct_f85de09d` | 266 | 133 | 1 | 0x2 | 0 (+0 sign) | | | -| 191 | `Unkstruct_a310cf42` | 266 | 133 | 1 | 0x4 | 0 (+0 sign) | | | -| 192 | `Unkstruct_80115124` | 266 | 266 | 1 | 0x2 | 0 (+0 sign) | D_80115124 | | -| 193 | `Unkstruct_800D4BE0` | 266 | 133 | 1 | 0x4 | 0 (+0 sign) | D_800D4BE0 | | -| 194 | `Unkstruct_800D4F8C` | 266 | 133 | 1 | 0x4 | 0 (+0 sign) | D_800D4F8C | | -| 195 | `Unkstruct_8016BFA8` | 266 | 133 | 0 | 0x0 | 0 (+0 sign) | | | -| 196 | `Unkstruct_8016BFA8` | 266 | 133 | 0 | 0x0 | 0 (+0 sign) | | | -| 197 | `Unkstruct_80176734` | 266 | 133 | 1 | 0x2c | 0 (+0 sign) | | D_8011F7B0 | -| 198 | `Unkstruct_80126B62` | 265 | 252 | 2 | 0xe | 0 (+1 sign) | D_80126B62 | | -| 199 | `Unkstruct_76f4299b` | 262 | 131 | 1 | 0x4a | 0 (+0 sign) | | | -| 200 | `Unkstruct_3816caab` | 260 | 130 | 2 | 0x1c | 0 (+0 sign) | | | +| 9 | `Unkstruct_57a28935` | 3271 | 196 | 26 | 0xa4 | 3 (+9 sign) | | | +| 10 | `Unkstruct_1fa9e810` | 3144 | 131 | 3 | 0x49 | 0 (+0 sign) | | | +| 11 | `Unkstruct_30b21035` | 3100 | 124 | 13 | 0x54 | 0 (+0 sign) | | | +| 12 | `Unkstruct_80126948` | 3034 | 848 | 34 | 0xa4 | 0 (+10 sign) | D_80126948, D_80126E60 | D_80114EE8, D_801151D4, D_80126948, D_80126E60… | +| 13 | `Unkstruct_a2c8734a` | 2646 | 126 | 8 | 0x34 | 0 (+3 sign) | | | +| 14 | `Unkstruct_198fc7cc` | 2580 | 129 | 16 | 0x38 | 3 (+1 sign) | | | +| 15 | `Unkstruct_80130D48` | 2382 | 587 | 25 | 0x64 | 6 (+3 sign) | | D_80072C84, D_80078E78 | +| 16 | `Unkstruct_ed8f1335` | 2356 | 124 | 18 | 0x24 | 0 (+0 sign) | | | +| 17 | `Unkstruct_8016B4F8` | 2140 | 535 | 5 | 0x30 | 0 (+0 sign) | | | +| 18 | `Unkstruct_80139C7C` | 2111 | 265 | 14 | 0x44 | 0 (+3 sign) | | | +| 19 | `Unkstruct_b047cdf2` | 2108 | 124 | 6 | 0x20 | 0 (+0 sign) | | | +| 20 | `Unkstruct_1255bbfd` | 2091 | 123 | 6 | 0x4b | 0 (+0 sign) | | | +| 21 | `Unkstruct_dd542e54` | 2016 | 126 | 7 | 0x18 | 0 (+0 sign) | | | +| 22 | `Unkstruct_f49880fd` | 2000 | 125 | 6 | 0x54 | 0 (+1 sign) | | | +| 23 | `Unkstruct_a8d34bce` | 1948 | 1948 | 1 | 0x215 | 0 (+0 sign) | | | +| 24 | `Unkstruct_568f7bda` | 1875 | 125 | 9 | 0x38 | 0 (+0 sign) | | | +| 25 | `Unkstruct_8016DF5C` | 1791 | 131 | 9 | 0x38 | 0 (+3 sign) | | | +| 26 | `Unkstruct_cd1bacd2` | 1764 | 126 | 10 | 0x38 | 0 (+0 sign) | | | +| 27 | `Unkstruct_8011F7A8` | 1742 | 270 | 7 | 0x11e | 0 (+0 sign) | D_8011F7A8 | | +| 28 | `Unkstruct_9928c710` | 1722 | 123 | 8 | 0x4b | 0 (+0 sign) | | | +| 29 | `Unkstruct_57db4d07` | 1664 | 128 | 13 | 0x0 | 13 (+0 sign) | | | +| 30 | `Unkstruct_4692fc17` | 1612 | 124 | 4 | 0x1e | 0 (+3 sign) | | | +| 31 | `Unkstruct_d77ead3e` | 1596 | 133 | 6 | 0x54 | 6 (+0 sign) | | | +| 32 | `Unkstruct_8012D3B4` | 1588 | 183 | 23 | 0x24 | 16 (+9 sign) | | D_80074808, D_800A5E60 | +| 33 | `Unkstruct_4e09b6d9` | 1572 | 131 | 9 | 0x32 | 0 (+1 sign) | | | +| 34 | `Unkstruct_645b745d` | 1548 | 258 | 4 | 0x7c | 0 (+0 sign) | | | +| 35 | `Unkstruct_23e45db5` | 1512 | 126 | 11 | 0x16 | 0 (+0 sign) | | | +| 36 | `Unkstruct_b5c0372a` | 1441 | 131 | 9 | 0x58 | 0 (+0 sign) | | | +| 37 | `Unkstruct_0980b9f0` | 1441 | 131 | 4 | 0x49 | 0 (+0 sign) | | | +| 38 | `Unkstruct_47470ce3` | 1404 | 117 | 6 | 0x1e | 0 (+0 sign) | | | +| 39 | `Unkstruct_d12e3a28` | 1364 | 124 | 9 | 0x14 | 0 (+0 sign) | | | +| 40 | `Unkstruct_8fdd92d1` | 1300 | 130 | 4 | 0x24 | 2 (+0 sign) | | | +| 41 | `Unkstruct_110cf29e` | 1250 | 125 | 7 | 0x2c | 0 (+0 sign) | | | +| 42 | `Unkstruct_4db8cec8` | 1240 | 124 | 8 | 0x36 | 0 (+0 sign) | | | +| 43 | `Unkstruct_f0bc3b7a` | 1240 | 124 | 7 | 0x100 | 0 (+0 sign) | | | +| 44 | `Unkstruct_297e7547` | 1240 | 124 | 10 | 0x58 | 0 (+0 sign) | | | +| 45 | `Unkstruct_d292c30d` | 1240 | 124 | 6 | 0x38 | 0 (+2 sign) | | | +| 46 | `Unkstruct_919ca3ea` | 1230 | 123 | 6 | 0x10 | 0 (+0 sign) | | | +| 47 | `Unkstruct_a459e3e5` | 1220 | 122 | 6 | 0x34 | 0 (+0 sign) | | | +| 48 | `Unkstruct_1149cbcc` | 1206 | 1073 | 1 | 0x2 | 0 (+1 sign) | | D_801152A8 | +| 49 | `Unkstruct_f9a7989e` | 1179 | 131 | 3 | 0x36 | 0 (+1 sign) | | | +| 50 | `Unkstruct_0b30043d` | 1128 | 376 | 3 | 0x5e | 0 (+0 sign) | | | +| 51 | `Unkstruct_301381d4` | 1116 | 124 | 3 | 0x36 | 0 (+1 sign) | | | +| 52 | `Unkstruct_4e427c01` | 1116 | 124 | 5 | 0xfe | 0 (+0 sign) | | | +| 53 | `Unkstruct_4857195e` | 1107 | 123 | 5 | 0x34 | 0 (+0 sign) | | | +| 54 | `Unkstruct_50a3f6b4` | 1040 | 130 | 3 | 0x36 | 0 (+0 sign) | | | +| 55 | `Unkstruct_800B9A02` | 992 | 434 | 1 | 0x2 | 0 (+0 sign) | D_800B9A02 | | +| 56 | `Unkstruct_ee756a74` | 992 | 124 | 5 | 0xfe | 0 (+0 sign) | | | +| 57 | `Unkstruct_b6c7c603` | 931 | 133 | 7 | 0x20 | 1 (+0 sign) | | | +| 58 | `Unkstruct_b774eeeb` | 917 | 131 | 4 | 0x41 | 0 (+0 sign) | | | +| 59 | `Unkstruct_859b4fab` | 910 | 130 | 4 | 0xb0 | 0 (+0 sign) | | | +| 60 | `Unkstruct_801463A0` | 907 | 210 | 13 | 0x54 | 0 (+1 sign) | | D_80126B78 | +| 61 | `Unkstruct_6d3f3f5d` | 889 | 127 | 6 | 0x38 | 0 (+0 sign) | | | +| 62 | `Unkstruct_85709988` | 889 | 127 | 4 | 0x38 | 0 (+0 sign) | | | +| 63 | `Unkstruct_1e86c313` | 882 | 126 | 4 | 0x8 | 0 (+0 sign) | | | +| 64 | `Unkstruct_a41ec127` | 882 | 126 | 6 | 0x38 | 0 (+0 sign) | | | +| 65 | `Unkstruct_17738e2c` | 876 | 33 | 32 | 0xa4 | 12 (+5 sign) | | | +| 66 | `Unkstruct_3f697924` | 875 | 125 | 5 | 0x38 | 0 (+0 sign) | | | +| 67 | `Unkstruct_e505dcd3` | 868 | 124 | 4 | 0x8 | 0 (+0 sign) | | | +| 68 | `Unkstruct_95febbc1` | 868 | 124 | 3 | 0x10 | 0 (+2 sign) | | | +| 69 | `Unkstruct_92677d11` | 861 | 123 | 5 | 0x240 | 0 (+0 sign) | | | +| 70 | `Unkstruct_86465c2c` | 861 | 123 | 7 | 0x20 | 0 (+0 sign) | | | +| 71 | `Unkstruct_ffd2397c` | 854 | 122 | 5 | 0x34 | 0 (+0 sign) | | | +| 72 | `Unkstruct_2932a0a7` | 798 | 133 | 6 | 0x12 | 5 (+0 sign) | | | +| 73 | `Unkstruct_0a8f505b` | 790 | 83 | 14 | 0x10c | 0 (+5 sign) | | | +| 74 | `Unkstruct_12f4cee2` | 786 | 131 | 5 | 0x28 | 0 (+0 sign) | | | +| 75 | `Unkstruct_d2490774` | 786 | 131 | 3 | 0xb0 | 0 (+0 sign) | | | +| 76 | `Unkstruct_80135260` | 780 | 130 | 3 | 0x54 | 0 (+0 sign) | | | +| 77 | `Unkstruct_d827da45` | 774 | 258 | 3 | 0x12 | 0 (+0 sign) | | | +| 78 | `Unkstruct_b196f9c0` | 768 | 128 | 5 | 0x14 | 1 (+0 sign) | | | +| 79 | `Unkstruct_36c327cf` | 762 | 127 | 2 | 0x18 | 0 (+0 sign) | | | +| 80 | `Unkstruct_6cd0e445` | 756 | 126 | 2 | 0x10 | 0 (+0 sign) | | | +| 81 | `Unkstruct_c0b9c5d5` | 750 | 125 | 6 | 0x10 | 0 (+0 sign) | | | +| 82 | `Unkstruct_64375b18` | 744 | 124 | 5 | 0xa0 | 0 (+0 sign) | | | +| 83 | `Unkstruct_b8ff4ce4` | 744 | 124 | 5 | 0x14 | 0 (+0 sign) | | | +| 84 | `Unkstruct_97b6f459` | 744 | 124 | 5 | 0x28 | 0 (+0 sign) | | | +| 85 | `Unkstruct_72479d90` | 744 | 124 | 4 | 0x7c | 0 (+0 sign) | | | +| 86 | `Unkstruct_38975874` | 744 | 124 | 4 | 0x84 | 0 (+0 sign) | | | +| 87 | `Unkstruct_76b1caf3` | 744 | 124 | 2 | 0x3 | 0 (+0 sign) | | | +| 88 | `Unkstruct_6f21e02b` | 711 | 79 | 6 | 0x7c | 0 (+0 sign) | | | +| 89 | `Unkstruct_801270C0` | 690 | 689 | 1 | 0x2 | 0 (+0 sign) | D_801270C0 | | +| 90 | `Unkstruct_8016BBE0` | 690 | 139 | 9 | 0x38 | 0 (+0 sign) | | | +| 91 | `Unkstruct_80146A6C` | 680 | 137 | 7 | 0x2c | 0 (+0 sign) | | | +| 92 | `Unkstruct_800AF630` | 671 | 537 | 3 | 0xa3dc | 0 (+0 sign) | D_800AF630 | | +| 93 | `Unkstruct_8012C284` | 668 | 533 | 1 | 0x2 | 0 (+1 sign) | | D_80126720 | +| 94 | `Unkstruct_896c95f7` | 665 | 133 | 3 | 0x5e | 0 (+0 sign) | | | +| 95 | `Unkstruct_61789347` | 665 | 133 | 0 | 0x0 | 0 (+0 sign) | | | +| 96 | `Unkstruct_5f294c87` | 665 | 133 | 0 | 0x0 | 0 (+0 sign) | | | +| 97 | `Unkstruct_801345F8` | 665 | 133 | 0 | 0x0 | 0 (+0 sign) | | | +| 98 | `Unkstruct_801345F8` | 665 | 133 | 0 | 0x0 | 0 (+0 sign) | | | +| 99 | `Unkstruct_801152A0` | 659 | 397 | 1 | 0x2 | 0 (+0 sign) | D_801152A0 | | +| 100 | `Unkstruct_fdd04bae` | 650 | 130 | 3 | 0x38 | 0 (+0 sign) | | | +| 101 | `Unkstruct_eb8b6fbf` | 645 | 129 | 5 | 0xfe | 0 (+0 sign) | | | +| 102 | `Unkstruct_90d0825c` | 645 | 129 | 5 | 0x1c | 1 (+0 sign) | | | +| 103 | `Unkstruct_27c177f1` | 645 | 129 | 4 | 0x34 | 0 (+0 sign) | | | +| 104 | `Unkstruct_4f9f60b8` | 630 | 126 | 4 | 0x78 | 0 (+0 sign) | | | +| 105 | `Unkstruct_7a31a22f` | 630 | 126 | 2 | 0x19c | 0 (+0 sign) | | | +| 106 | `Unkstruct_187abeff` | 630 | 126 | 5 | 0x68 | 0 (+0 sign) | | | +| 107 | `Unkstruct_f9fa1fb7` | 630 | 126 | 4 | 0x20 | 0 (+0 sign) | | | +| 108 | `Unkstruct_20d4328b` | 630 | 126 | 4 | 0x38 | 0 (+0 sign) | | | +| 109 | `Unkstruct_d94ab931` | 625 | 125 | 4 | 0x6 | 2 (+1 sign) | | | +| 110 | `Unkstruct_7ef9c9ef` | 625 | 125 | 4 | 0x6 | 2 (+1 sign) | | | +| 111 | `Unkstruct_ad0948d5` | 625 | 125 | 5 | 0x1c | 0 (+0 sign) | | | +| 112 | `Unkstruct_fccefc1f` | 625 | 125 | 2 | 0x1a | 0 (+0 sign) | | | +| 113 | `Unkstruct_b500a675` | 620 | 124 | 2 | 0x2c | 0 (+0 sign) | | | +| 114 | `Unkstruct_af1e9d57` | 620 | 248 | 4 | 0x64 | 0 (+0 sign) | | | +| 115 | `Unkstruct_172cbd29` | 620 | 124 | 2 | 0x1fc | 0 (+0 sign) | | | +| 116 | `Unkstruct_c5b84dea` | 620 | 124 | 4 | 0x24 | 0 (+0 sign) | | | +| 117 | `Unkstruct_aaf4c4dd` | 615 | 615 | 1 | 0x16 | 0 (+0 sign) | | | +| 118 | `Unkstruct_293d71dc` | 600 | 75 | 0 | 0x0 | 0 (+0 sign) | | | +| 119 | `Unkstruct_8011512E` | 532 | 133 | 1 | 0x2 | 0 (+0 sign) | D_8011512E | | +| 120 | `Unkstruct_8016BFA8` | 532 | 133 | 4 | 0x24 | 0 (+0 sign) | | | +| 121 | `Unkstruct_7476116e` | 532 | 133 | 1 | 0x4 | 0 (+0 sign) | | | +| 122 | `Unkstruct_80115128` | 527 | 394 | 1 | 0x2 | 0 (+0 sign) | D_80115128 | | +| 123 | `Unkstruct_30befa8c` | 520 | 130 | 3 | 0xfe | 0 (+0 sign) | | | +| 124 | `Unkstruct_01082f7a` | 520 | 520 | 1 | 0x4 | 0 (+0 sign) | | | +| 125 | `Unkstruct_db0ee441` | 516 | 129 | 4 | 0x38 | 0 (+0 sign) | | | +| 126 | `Unkstruct_290ce261` | 504 | 126 | 3 | 0xfe | 0 (+0 sign) | | | +| 127 | `Unkstruct_d6100faa` | 504 | 126 | 3 | 0x20 | 0 (+0 sign) | | | +| 128 | `Unkstruct_fc43506c` | 504 | 126 | 3 | 0xe | 0 (+0 sign) | | | +| 129 | `Unkstruct_7cb40b10` | 500 | 500 | 1 | 0x4 | 0 (+0 sign) | | | +| 130 | `Unkstruct_4e078af8` | 496 | 124 | 2 | 0x4 | 0 (+2 sign) | | | +| 131 | `Unkstruct_494cef68` | 496 | 124 | 2 | 0x188 | 0 (+0 sign) | | | +| 132 | `Unkstruct_6216dfea` | 496 | 124 | 4 | 0x38 | 0 (+0 sign) | | | +| 133 | `Unkstruct_6feef4cf` | 496 | 124 | 4 | 0x38 | 0 (+0 sign) | | | +| 134 | `Unkstruct_9e228c39` | 492 | 123 | 3 | 0x6 | 0 (+0 sign) | | | +| 135 | `Unkstruct_76fe8618` | 492 | 123 | 3 | 0x2c | 0 (+0 sign) | | | +| 136 | `Unkstruct_48c11385` | 441 | 21 | 5 | 0x68 | 0 (+0 sign) | | | +| 137 | `Unkstruct_a55a221e` | 428 | 428 | 1 | 0x215 | 0 (+0 sign) | | | +| 138 | `Unkstruct_02864986` | 420 | 420 | 1 | 0x2 | 0 (+1 sign) | | D_80115158 | +| 139 | `Unkstruct_f9be7d6a` | 405 | 45 | 6 | 0x7c | 0 (+0 sign) | | | +| 140 | `Unkstruct_8011511A` | 404 | 146 | 1 | 0x2 | 0 (+1 sign) | D_8011511A | | +| 141 | `Unkstruct_8016B5C0` | 399 | 133 | 2 | 0x1c | 0 (+0 sign) | | | +| 142 | `Unkstruct_8016BFA8` | 399 | 133 | 3 | 0x6 | 0 (+0 sign) | | | +| 143 | `Unkstruct_5e1aeb8f` | 399 | 133 | 3 | 0x10 | 0 (+0 sign) | | | +| 144 | `Unkstruct_8011F7F0` | 399 | 133 | 3 | 0x42 | 0 (+0 sign) | D_8011F7F0 | | +| 145 | `Unkstruct_630777a3` | 399 | 266 | 2 | 0x5 | 0 (+0 sign) | | | +| 146 | `Unkstruct_80135260` | 390 | 130 | 3 | 0x6 | 0 (+0 sign) | | | +| 147 | `Unkstruct_a472a6ba` | 387 | 129 | 3 | 0x1c | 0 (+0 sign) | | | +| 148 | `Unkstruct_f2440762` | 384 | 128 | 1 | 0x4 | 0 (+0 sign) | | | +| 149 | `Unkstruct_80164BDC` | 384 | 128 | 5 | 0x64 | 0 (+1 sign) | | | +| 150 | `Unkstruct_8c2ab96e` | 384 | 128 | 3 | 0x8 | 0 (+0 sign) | | | +| 151 | `Unkstruct_d448adea` | 384 | 48 | 0 | 0x0 | 0 (+0 sign) | | | +| 152 | `Unkstruct_c06886a4` | 381 | 127 | 2 | 0x1c | 0 (+0 sign) | | | +| 153 | `Unkstruct_e79a0730` | 378 | 126 | 2 | 0x24 | 0 (+0 sign) | | | +| 154 | `Unkstruct_1a8e907f` | 378 | 126 | 1 | 0x4 | 0 (+0 sign) | | | +| 155 | `Unkstruct_e1c73ac0` | 378 | 126 | 3 | 0x6 | 0 (+0 sign) | | | +| 156 | `Unkstruct_b36b9c5c` | 378 | 126 | 3 | 0x1c | 0 (+0 sign) | | | +| 157 | `Unkstruct_93e44aed` | 378 | 126 | 2 | 0x1c | 0 (+0 sign) | | | +| 158 | `Unkstruct_8dd0822e` | 378 | 126 | 3 | 0xe | 0 (+0 sign) | | | +| 159 | `Unkstruct_89684c99` | 375 | 125 | 3 | 0x6 | 0 (+0 sign) | | | +| 160 | `Unkstruct_d0754cca` | 375 | 125 | 2 | 0x24 | 0 (+0 sign) | | | +| 161 | `Unkstruct_89f82b52` | 372 | 124 | 3 | 0x1ca | 0 (+0 sign) | | | +| 162 | `Unkstruct_924d03d6` | 372 | 124 | 3 | 0x6 | 0 (+0 sign) | | | +| 163 | `Unkstruct_7fd6458b` | 372 | 124 | 1 | 0x40 | 0 (+0 sign) | | | +| 164 | `Unkstruct_7f39c942` | 372 | 124 | 3 | 0x1c | 0 (+0 sign) | | | +| 165 | `Unkstruct_39de3511` | 372 | 124 | 3 | 0x12 | 0 (+0 sign) | | | +| 166 | `Unkstruct_1b4331f0` | 369 | 123 | 3 | 0x5e | 0 (+0 sign) | | | +| 167 | `Unkstruct_75e9a6af` | 369 | 123 | 3 | 0x10 | 0 (+0 sign) | | | +| 168 | `Unkstruct_c59d6379` | 366 | 14 | 24 | 0xa2 | 3 (+3 sign) | | | +| 169 | `Unkstruct_bf723e51` | 364 | 14 | 13 | 0x34 | 0 (+0 sign) | | | +| 170 | `Unkstruct_5f78a994` | 336 | 24 | 8 | 0x38 | 0 (+2 sign) | | | +| 171 | `Unkstruct_800AE620` | 325 | 322 | 0 | 0x0 | 0 (+0 sign) | D_800AE620 | | +| 172 | `Unkstruct_814e4d87` | 300 | 75 | 0 | 0x0 | 0 (+0 sign) | | | +| 173 | `Unkstruct_09b02bee` | 300 | 75 | 2 | 0x4 | 0 (+0 sign) | | | +| 174 | `Unkstruct_33ccb6b5` | 294 | 98 | 2 | 0x24 | 0 (+0 sign) | | | +| 175 | `Unkstruct_1ef3b11b` | 280 | 10 | 7 | 0x10c | 0 (+1 sign) | | | +| 176 | `Unkstruct_80115188` | 274 | 270 | 1 | 0x4 | 0 (+0 sign) | D_80115188 | | +| 177 | `Unkstruct_80129CF8` | 273 | 90 | 33 | 0xa435 | 0 (+5 sign) | | D_800AF630 | +| 178 | `Unkstruct_a2d6c72b` | 273 | 21 | 4 | 0x100 | 0 (+0 sign) | | | +| 179 | `Unkstruct_801152B0` | 268 | 268 | 0 | 0x0 | 0 (+0 sign) | D_801152B0 | | +| 180 | `Unkstruct_801269F4` | 267 | 134 | 1 | 0x2 | 0 (+0 sign) | D_801269F4 | | +| 181 | `Unkstruct_8012C1DC` | 267 | 134 | 3 | 0x1c | 0 (+0 sign) | | | +| 182 | `Unkstruct_8011515C` | 267 | 267 | 1 | 0x2 | 0 (+1 sign) | D_8011515C | | +| 183 | `Unkstruct_1db7b82d` | 266 | 133 | 1 | 0x2e | 0 (+0 sign) | | | +| 184 | `Unkstruct_6bd63257` | 266 | 133 | 2 | 0x1e | 0 (+0 sign) | | | +| 185 | `Unkstruct_f85de09d` | 266 | 133 | 1 | 0x2 | 0 (+0 sign) | | | +| 186 | `Unkstruct_a310cf42` | 266 | 133 | 1 | 0x4 | 0 (+0 sign) | | | +| 187 | `Unkstruct_80115124` | 266 | 266 | 1 | 0x2 | 0 (+0 sign) | D_80115124 | | +| 188 | `Unkstruct_800D4BE0` | 266 | 133 | 1 | 0x4 | 0 (+0 sign) | D_800D4BE0 | | +| 189 | `Unkstruct_800D4F8C` | 266 | 133 | 1 | 0x4 | 0 (+0 sign) | D_800D4F8C | | +| 190 | `Unkstruct_8016BFA8` | 266 | 133 | 0 | 0x0 | 0 (+0 sign) | | | +| 191 | `Unkstruct_8016BFA8` | 266 | 133 | 0 | 0x0 | 0 (+0 sign) | | | +| 192 | `Unkstruct_80176734` | 266 | 133 | 1 | 0x2c | 0 (+0 sign) | | D_8011F7B0 | +| 193 | `Unkstruct_30ffce68` | 262 | 131 | 2 | 0xc2 | 0 (+0 sign) | | | +| 194 | `Unkstruct_76f4299b` | 262 | 131 | 1 | 0x4a | 0 (+0 sign) | | | +| 195 | `Unkstruct_3816caab` | 260 | 130 | 2 | 0x1c | 0 (+0 sign) | | | +| 196 | `Unkstruct_ac2c8f05` | 260 | 130 | 1 | 0x16e | 0 (+0 sign) | | | +| 197 | `Unkstruct_985493b9` | 256 | 128 | 2 | 0x1c1 | 0 (+0 sign) | | | +| 198 | `Unkstruct_c21b1a66` | 255 | 255 | 1 | 0x5 | 0 (+0 sign) | | | +| 199 | `Unkstruct_80126B62` | 252 | 242 | 1 | 0x2 | 0 (+1 sign) | D_80126B62 | | +| 200 | `Unkstruct_ae2d1f2a` | 252 | 7 | 13 | 0x24c | 0 (+2 sign) | | | -*19123 types in all; the table shows the 200 largest by site count. The full map with every type's layout (offset, width, sign, site count per field) and conflicts is `.run/P37/census/struct_map.json`.* +*17965 types in all; the table shows the 200 largest by site count. The full map with every type's layout (offset, width, sign, site count per field) and conflicts is `.run/P37/census/struct_map.json`.* diff --git a/phase-ends/current/logs/T5.md b/phase-ends/current/logs/T5.md new file mode 100644 index 0000000000..b3196cbf87 --- /dev/null +++ b/phase-ends/current/logs/T5.md @@ -0,0 +1,31 @@ +# T5 log: globals/abs addresses to declared symbols (forms I, M) + +## Attempt 1 (archived: logs/T5.progress1.md) +- c1 ef4507badb: I/M composition; ABS literal sites 0; 15 `--try --recipes` probes (10 IDENTICAL, 3 DIFFERS, 2 NO-SITE). +- c2 f476751f9f, 9d2c7e9dc6: `restruct --rung S --recipes --forms I,M` ladder, per-site RESIDUAL(R-why); cycle RECIPES=1 FORMS=I,M. +- c3: calibration + pilot cycle t5_imS1 on ov_SC07_006; forced expert hand-back while running. + +## Attempt 2 (this context) +- 10:29 pgrep: pilot pid 2021488 in its gate; waited with `tail --pid`; exit 0, cycle commit 1134b7a127 (14 drawn / 279 residual, R22 218/218). +- Archived progress file: eb4695b944. +- Brief c4 (sweep all segs, then residue, then gate): returned blocked bfc3f0cb41. The orphaned c3 agent had started `restruct_cycle.sh 2 20 200 S ov_*` (pid 2091853) after c4's first pgrep; c4 correctly refused a second cycle (its own launch died at the dirty-tree check, exit 3, touched nothing). +- Brief c5 (wait for pid 2091853 and any follow-up cycle, then leftovers, residue all segs, census, gate): done 2407750392, log logs/T5.c5.md. + - c3 batches S2-S13 (ov_*), S15 (md_*), S18 (main) committed green, R22 218/0 each. + - Deviation (c5): src/shared global-base sites (529) sit in .h TUs, drawn only with `--headers`; c5 reverted its uncommitted residue rows, ran HEADERS=1 cycles S20-S23 (5 drawn, mostly R2-HEADER-EXTERN), then residue again. + - Residue rows +6797 (t5_res_{ov,md,main,shared}). + - 1 GADDR residual left: src/800_b_2.c:4639 `gaddr:D_800A4F17` file-scope (ladder needs fn). +- Drawn total ≈ 1676 (sum of batch lines); raw I 51505 → 49831 consistent. + +## Verify (this context) +- `PY tools/type_census.py --check-casts --residue --quiet` → rc 1 (lying only): `raw P=257464 I=49831 X=13790 M=15128 (uncovered P=0 I=0 X=0 M=0); ... unbacked 0; lying=229 (ledgered 0)`. +- `bash tools/run.sh --bg t5_verify_gate -- bash -c 'make clean && make extract-all JOBS=16 && make check-all JOBS=16'` → `check-all: 218 passed, 0 failed of 218` (.run/logs/t5_verify_gate.log). + +## D1 progress +- First `--snapshot` attempt: missing label (usage error); second: STALE census at .run/P39/census → `type_census.py --out-dir .run/P39/census` (.run/logs/t5_census.log), then `readability_progress.py --snapshot 'P3.39 T5: forms I/M closed' && timeline.py && progress.py --readme` (.run/logs/t5_snap.log) OK. + +## Hypotheses rejected +- Abs-address tooling: 0 ABS literal sites (c1). +- shared = residue only: wrong, .h global sites need `--headers` ladder pass first (c5). + +## Retrievers +- none this attempt (attempt 1: one inline, no report). diff --git a/phase-ends/current/tasks/INDEX.md b/phase-ends/current/tasks/INDEX.md index 3dfe278da2..b3ad4614ba 100644 --- a/phase-ends/current/tasks/INDEX.md +++ b/phase-ends/current/tasks/INDEX.md @@ -5,3 +5,4 @@ T2 | done | cast and lying gate instruments, reinterpret-macro set | - | tasks/T T3 | done | rung S sweep, overlays (forms P and X) | - | tasks/T3.md | logs/T3.md | - T4 | blocked | rung S sweep, md_*, main and shared bodies (forms P and X) | - | tasks/T4.md | logs/T4.md | - T10 | done | residue coverage gate (--check-casts --residue) and 3.40 sizing | - | tasks/T10.md | logs/T10.md | - +T5 | done | globals and absolute addresses to declared symbols (forms I and M, residual non-struct bases) | - | tasks/T5.md | logs/T5.md | - diff --git a/phase-ends/current/tasks/T5.md b/phase-ends/current/tasks/T5.md new file mode 100644 index 0000000000..a3753abd0a --- /dev/null +++ b/phase-ends/current/tasks/T5.md @@ -0,0 +1,29 @@ +# T5 — globals and absolute addresses to declared symbols (forms I and M, residual non-struct bases) + +Status: done | expert: expert-opus55 (attempt 2) | ctx-at-completion: n/a | commit: see COMMIT | coder runs: c1 done (ef4507badb), c2 done (f476751f9f), c3 pilot+sweep (orphaned at handoff; cycles 1134b7a127, S2-S18), c4 blocked (bfc3f0cb41, cycle already running), c5 done (2407750392) +Done: forms I and M at 0 uncovered: ~1676 global/gaddr sites drawn to typed externs (R2 extern array mostly) by the recipe ladder; every refused site and every non-global I/M base is a ledger RESIDUAL with a specific cause; R22 218/218. +progress: readability snapshot 'P3.39 T5: forms I/M closed' (raw I 49831, M 15129), timeline and README regenerated in the T5 commit. +Files: +- src/**/*.c, src/shared/*.h — recipe-drawn extern declarations (cycle commits t5_imS1..S23) +- .run/P37/restruct/ledger.jsonl — per-site RESIDUAL(R-why) and t5_res_* residue rows (force-added) +- tools/restruct.py, tools/restruct_cycle.sh — `--rung S --recipes --forms I,M`, RECIPES/FORMS pass-through (c2) +- docs/ops/p39-t5-2026-10-02-restruct-im-recipes.md — ops note (c2) +- README.md, docs/progress*.{json,md}, docs/readability*, docs/story-timeline.* — D1 progress regeneration +Decisions: +- binding: I/M global sites close through `restruct --rung S --recipes --forms I,M` first; RESIDUAL only with the refusing recipe as cause (R2-NO-SCALAR-EXTERN, R2-WIDTH, R2-DIFFERS, R2-REKEYS, R2-COMPILE-ERROR, R2-HEADER-EXTERN, R3-NOT-CONTIGUOUS, R3-COMPILE-ERROR); non-global I/M bases close with `--residue --forms I,M`. +- Absolute-address clause vacuous: 0 ABS `0x80…` literal sites in I/M (c1), so no symbol-file edits. +Deviations: +- shared headers were planned residue-only; their 529 global-base sites need the ladder with `--headers` (HEADERS=1 cycles S20-S23, 5 drawn) before residue. +- Attempt 1 handed back while c3's cycle ran; c3's orphaned agent kept sweeping (ov_*, md_*, main); c4 refused to race it; c5 waited and finished. +Findings: +- Ladder yield is low (~1676 drawn vs ~48k residual sites by R cause); the biggest refusals are R2-NO-SCALAR-EXTERN 18,945 and R2-WIDTH 10,186. Those are the backlog for any later typed-global work. +- 1 GADDR residual remains: src/800_b_2.c:4639 `gaddr:D_800A4F17` at file scope (ladder needs a function). +- `readability_progress.py` reads `.run/P39/census/type_census.json`; refresh it with `type_census.py --out-dir .run/P39/census` before `--snapshot "