# Readability of the matched C — the Gen3 series > **Generated by `tools/readability_progress.py --snapshot`; never typed (R75).** Companion to > `docs/levers.md`, which counts the compiler-forcing levers. This one counts the two things that are wrong > with the source even where no lever remains: call declarations that are FALSE, and memory read through raw > pointer casts where the original had a struct. From Phase 37 the row carries the type census's columns > (`tools/type_census.py`): all four dereference forms, the typed cast-member intermediate, the definitions and the map. | date | label | commit | lying declarations | of which `()` | of which `(void)` | in a pinned body | raw cast derefs (one form, raw text) | struct member reads | **raw derefs, four forms** | typed cast-member | struct defs (canonical / in .c) | layouts | duplicate classes / names | map types (% sites) K&R sites (marked, apart) | cross-binary (apart) | |---|---|---|---:|---:|---:|---:|---:|---:|---:|---:|---|---:|---|---|---:|---:| | 2026-09-10 | P36 S102 — after the 16,759 free declaration repairs | `51028a78d` | 94001 | 86701 | 7300 | 461 | 414148 | 173286 | **—** | — | — | — | — | — | — | — | | 2026-09-11 | P36 close | `7a7f78e25` | 98648 | 91357 | 7291 | 33 | 411850 | 177902 | **—** | — | — | — | — | — | — | — | | 2026-09-11 | P37 T1 — the type census (four forms, definitions, the map) | `23fc5d215` | 98648 | 91357 | 7291 | 33 | 411850 | 177902 | **503016** | 36681 | 7261 (1179 / 5995) | 525 | 206 / 2789 | 18760 (99.2 %) | — | — | | 2026-09-12 | P37 T2 — the census after the audit's parser fixes (attributes, dead guards) | `da26c05d6` | 98648 | 91357 | 7291 | 33 | 411850 | 177902 | **503016** | 36681 | 7255 (1179 / 5989) | 527 | 206 / 2823 | 18760 (99.2 %) | — | — | | 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 | | 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 | | 2026-10-02 | P3.39 T6: lying declarations ledgered (229 -> 11 ledgered) | `9aa588736` | 11 | 2 | 9 | 0 | 260306 | 320402 | **336219** | 173103 | 1650 (1021 / 600) | 523 | 53 / 496 | 17830 (98.8 %) | 5293 | 418 | | 2026-10-02 | P3.39 T7.1: GTE to one spelling (direct GTE 492 -> 0, per-TU gte defs 150 -> 0) | `72e4c48c8` | 11 | 2 | 9 | 0 | 260306 | 320402 | **336219** | 173103 | 1650 (1021 / 600) | 523 | 53 / 496 | 17878 (98.8 %) | 5293 | 418 | | 2026-10-02 | P3.39 T8: lever residue TSV (2433 rows, reading A) | `21f3aee1b` | 11 | 2 | 9 | 0 | 260312 | 320402 | **336225** | 173103 | 1650 (1021 / 600) | 523 | 53 / 496 | 17677 (98.8 %) | 5293 | 418 | | 2026-10-02 | P3.39 close: cast campaign, reading A | `3a9377c92` | 11 | 2 | 9 | 0 | 260312 | 320402 | **336225** | 173103 | 1650 (1021 / 600) | 523 | 53 / 496 | 17968 (98.8 %) | 5293 | 418 | | 2026-10-02 | P3.39 T12: phase-close docs | `20faec8d4` | 11 | 2 | 9 | 0 | 260312 | 320402 | **336225** | 173103 | 1650 (1021 / 600) | 523 | 53 / 496 | 17968 (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 register, so a dropped argument removes an instruction, and Phase 36 found register pins inserted to fake exactly that instruction. *Raw cast derefs* is the struct debt — a struct cannot be recovered from the binary, only inferred from consistent base+offset+width evidence, so this figure falls as that work lands.