T11: progress snapshot P3.39 T11, timeline and README Types cast-gate clause

This commit is contained in:
Drew T
2026-10-02 15:25:08 -06:00
parent 6b9baf6a99
commit a04244ac86
9 changed files with 44 additions and 5 deletions
-2
View File
@@ -18,5 +18,3 @@ REAL matches: CdQueueBusy CdReadRequest CdReadSectorReadyCB CdReadStateMachine D
NON_MATCHING:
build SHA1: 143dbb89f34491258bbc27810d0a12ec8b43a8dd (byte-identical)
empties audit: 43/43 genuine jr;nop (all clean)
+1
View File
@@ -7,3 +7,4 @@ date label commit definitions narrow_decls callees kr_empty narrow pinned_rows p
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
2026-10-02 P3.39 T11: chart catch-up e7203a358b11094fefedf3be8b656c147603143b 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
1 date label commit definitions narrow_decls callees kr_empty narrow pinned_rows pinned_bodies raw_casts struct_members deref_all form_P form_I form_X form_M addr_form typed_cast_member struct_defs canon_defs in_c_defs distinct_layouts dup_classes dup_names map_types map_pct kr_sites kr_callees cross_binary cross_callees
7 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
8 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
9 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
10 2026-10-02 P3.39 T11: chart catch-up e7203a358b11094fefedf3be8b656c147603143b 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
+1
View File
@@ -16,6 +16,7 @@
| 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 |
| 2026-10-02 | P3.39 T11: chart catch-up | `e7203a358` | 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
+1 -1
View File
@@ -103,6 +103,6 @@
| 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 | 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 |
| 2026-10-02 | 81 | | 218 | 100.0% | 100.0% | 100.0% | 100.0% | 0 | — | — | 336,219 | 1,650 |
82 dated rows · phase ticks from the 38 PhaseEnds · the chart: `docs/story-timeline.svg`.
+1 -1
View File
@@ -86,7 +86,7 @@
<text x="970" y="557.2" text-anchor="end" font-size="12" fill="#d62728">register pins + asm statements (the lever series, 98 increments): 53,221 → 3,730</text>
<polyline fill="none" stroke="#9467bd" stroke-width="2" stroke-dasharray="5,4" points="771.3,464.0 951.5,465.2"/>
<text x="970" y="526.2" text-anchor="end" font-size="12" fill="#9467bd">raw pointer-cast dereferences — the one-form regex count (until the census, 2026-09-12): 414,148 → 411,850</text>
<polyline fill="none" stroke="#9467bd" stroke-width="2" stroke-dasharray="" points="951.5,464.0 970.5,464.0 970.5,464.0 970.5,464.0 980.0,464.0 980.0,537.6"/>
<polyline fill="none" stroke="#9467bd" stroke-width="2" stroke-dasharray="" points="951.5,464.0 970.5,464.0 970.5,464.0 970.5,464.0 980.0,464.0 980.0,537.6 980.0,537.6"/>
<text x="970" y="541.7" text-anchor="end" font-size="12" fill="#9467bd">raw pointer-cast dereferences — the four-form census (2026-09-12 →; a new instrument, its own 100 %): 503,016 → 336,219</text>
<text x="980" y="726" text-anchor="end" font-size="10" fill="#777">generated by tools/timeline.py — keyed by date</text>
</svg>

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

+1 -1
View File
@@ -1,6 +1,6 @@
# The struct map — the types the fleet's cast sites need (Phase 37 T1)
> **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_<addr>`: the lowest global instance's address, else the lowest member function's); fields are placeholders (`unk<HEX>`) until Phase 38 cites evidence.
> **Generated by `tools/type_census.py` at `2992188ecf` (2026-10-02T21:16:57Z); 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_<addr>`: the lowest global instance's address, else the lowest member function's); fields are placeholders (`unk<HEX>`) until Phase 38 cites evidence.
**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.
+12
View File
@@ -0,0 +1,12 @@
# T11 log — progress snapshot and chart catch-up
Timeline:
- Start: `readability_progress --check` STALE (last row T5 at 240775039, HEAD 2992188ec); `timeline --check` fresh.
- Snapshot-refusal cause: T5.c3 log:28 "readability snapshot refused (a stale census?)"; T5.md log:24 STALE census at .run/P39/census. `grep type_census tools/restruct_cycle.sh` → :66 census to default .run/P37/census; readability_progress.py:62-75 picks the newest .run/P<N>/census (P39) and refuses on src stamp mismatch. Workaround: refresh P39 census before snapshot.
- readability_progress.py:140-148: --check = last row commit == HEAD (strict).
- Coder brief T11.c1 (opus55): progress.py README Types clause with live --check-casts --residue per-form raw + covered/uncovered, unbacked, lying; commit e7203a358b; log logs/T11.c1.md. Coder refreshed `.run/P39/census` and ran the gate (.run/logs/t11_cc.log): `check-casts: raw P=257464 I=49831 X=13790 M=15128 (uncovered P=0 I=0 X=0 M=0); macros CAST_ALIAS=1173 CAST_SIGN=8429 CAST_WIDTH=10410 CAST_MISALIGNED=624 CAST_NONSTRUCT=327 (unbacked 0); lying=229 (ledgered 0)`.
- Expert: `readability_progress --snapshot 'P3.39 T11: chart catch-up' && timeline.py && progress.py --readme` (.run/logs/t11_snap.log) rc 0.
- Verify: readability_progress --check OK at e7203a358 == HEAD; timeline --check fresh (82 rows); progress --readme --check fresh.
- Rejected: per-debt panels in story-timeline.svg (not cheap; deferred 3.40 per D1).
- Observation: P37 vs P39 census differ by 6 P/M sites (336,213 vs 336,219); not investigated.
Retrievers: none.
+1
View File
@@ -6,3 +6,4 @@ T3 | done | rung S sweep, overlays (forms P and X) | - | tasks/T3.md | logs/T3.m
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 | -
T11 | done | progress snapshot and chart catch-up | - | tasks/T11.md | logs/T11.md | -
+26
View File
@@ -0,0 +1,26 @@
# T11 — progress snapshot and chart catch-up
Status: done | expert: expert-opus55 | ctx-at-completion: n/a | commit: see COMMIT | coder runs: c1 opus55 done (e7203a358b)
Done: README Types now states the live `--check-casts --residue` gate numbers with the per-form covered/uncovered split; readability row 'P3.39 T11: chart catch-up' at e7203a358, timeline and README regenerated.
progress: raw P=257,464 I=49,831 X=13,790 M=15,128 (gate, P37 census) / 336,219 four-form total (P39 census); uncovered P=0 I=0 X=0 M=0; macro sites 20,963 (unbacked 0); levers 3,711 (1,868 pins + 1,843 asm); lying 229 over 24 callees (ledgered 0); struct defs 1,650; gates passed: readability_progress --check, timeline --check, progress --readme --check.
Files:
- tools/progress.py — fleet() reads the newest residue census + check_casts_verdict on its paired type census; readme_block adds the cast-gate clause (c1)
- README.md, docs/progress.json, docs/progress.md — regenerated
- docs/readability-progress.tsv, docs/readability.md — P39 T11 row
- docs/story-timeline.md, docs/story-timeline.svg — regenerated (82 rows)
- docs/struct-map.md — rewritten by the P39 census refresh
Decisions:
- Clause omitted (not printed stale) when the residue census is absent or older than its paired type census.
- Per-debt panels on a date axis in story-timeline.svg not built: not cheap (timeline.py change + new tsv series); stays deferred to 3.40 with D1's "uncovered series".
Deviations:
- c1: unbacked/lying come from `type_census.check_casts_verdict` on the paired census, not residue_census.json (the JSON lacks them).
Findings:
- Snapshot refused on every T5 batch: cause confirmed. `restruct_cycle.sh:66` reruns `type_census.py` into the default `.run/P37/census`; `readability_progress.py` reads the newest `.run/P<N>/census` (P39), which the cycle never refreshes, so the src stamp differs → "census is STALE" → cycle prints "readability snapshot refused" and continues. Workaround (used here): `type_census.py -j 16 --out-dir .run/P39/census` before `--snapshot`. Fix candidate (not in T11 files): cycle census writes to the newest census dir, or `readability_progress` takes `--census-dir`.
- Two census dirs disagree by 6 sites: gate (P37 dir) P=257,464 M=15,128 total 336,213; P39 census P=257,469 M=15,129 total 336,219. README Types carries both (four-form total from P39, gate clause from P37). Not investigated.
- Brief's "I=12157, M=13704" uncovered figures do not match the live gate (I/M uncovered 0, also T5 Verified); README shows the live gate.
Gotchas:
- harness: `readability_progress.py --check` is OK only when the last row's commit == HEAD; the commit that records the row makes it STALE again. Verify is therefore true at the snapshot commit's parent tree, never after the commit; `--help` does not say so.
- workflow: D1 snapshot = `type_census.py -j 16 --out-dir .run/P39/census` → `readability_progress.py --snapshot "<label>"` → `timeline.py` → `progress.py --readme`; run the census on the newest P dir, not the cycle's P37.
Next task needs: T6 owns lying=229 (the only gate failure). Census-moving tasks: refresh the P39 census before snapshot (cycle does not).
Verified: PY tools/readability_progress.py --check && PY tools/timeline.py --check → "OK — last row 'P3.39 T11: chart catch-up' at e7203a358, HEAD e7203a358" + "fresh (82 rows)", rc 0 (before the T11 commit; see harness gotcha); PY tools/progress.py --readme --check → fresh
Full log: phase-ends/current/logs/T11.md