T1: kit-corpus after timeline fix; census outputs

This commit is contained in:
Drew T
2026-10-01 10:47:54 -06:00
parent 2baecd375d
commit 78afd5bc09
5 changed files with 13 additions and 9 deletions
File diff suppressed because one or more lines are too long
+5 -5
View File
@@ -1,9 +1,9 @@
{
"summary": {
"head": "78515137ab",
"head": "0cb2b6b522",
"src_stamp": "287e6f521d908e6d",
"tool_stamp": "17a2928ffd",
"when": "2026-10-01T02:18:15Z",
"when": "2026-10-01T16:47:07Z",
"files": 7306,
"tus": 4121,
"headers": 3181,
@@ -947,9 +947,9 @@
"path": ".run/P37/census/parked.tsv"
},
"timing": {
"walk_s": 65.7,
"decls_s": 255.7,
"total_s": 271.3
"walk_s": 42.1,
"decls_s": 211.7,
"total_s": 224.1
}
},
"dup_layout_classes": [
+1 -1
View File
@@ -1,4 +1,4 @@
type_census — 2026-10-01T02:18:15Z at 78515137ab (src stamp 287e6f521d908e6d, tool 17a2928ffd); 7306 files (4121 TUs + 3181 headers), 99109 function definitions; walk 65.7 s, total 271.3 s
type_census — 2026-10-01T16:47:07Z at 0cb2b6b522 (src stamp 287e6f521d908e6d, tool 17a2928ffd); 7306 files (4121 TUs + 3181 headers), 99109 function definitions; walk 42.1 s, total 224.1 s
DEFINITIONS 1650 struct/union bodies (+0 enums): canonical header 1021 · .c file-scope 0 · .c block-scope 600 · per-function shared headers 29 · other headers 0 · include/ 326
1024 distinct names · 523 distinct layouts (0 unresolved) · 53 duplicate classes covering 496 names (tier 1 0 same-named, tier 2 53 opaque; 44 layout-twin classes / 472 names kept apart) · 42 exact-text classes / 546 copies · 0 VARIANT names (>1 layout) · 56 dead canonical names · 0 canonical names redefined in .c · 4300 scalar/alias typedefs · 145 forward decls
+5 -1
View File
@@ -4,6 +4,7 @@
tools/timeline.py # writes docs/story-timeline.md + docs/story-timeline.svg; exit 1 if the last row
# disagrees with docs/progress.json (the self-check)
tools/timeline.py --check # regenerate in memory and exit 1 if either committed file is stale
# (the latest row's Commits cell is not compared: committing the file bumps it)
Sources (all in the repository, keyed by DATE — never by commit hash, which the public-flip rewrite changed):
* every commit that touched docs/progress.fleet.md (the fleet digest, since 2026-06-16): the June single-metric
@@ -402,7 +403,10 @@ def main(argv):
selfcheck(rows)
md, svg = render_md(rows), render_svg(rows)
if a.check:
stale = [p.name for p, t in ((OUT_MD, md), (OUT_SVG, svg)) if not p.exists() or p.read_text() != t]
# mask the latest row's Commits cell on both sides: committing the regenerated file bumps today's count
last = re.compile(r"^(\| " + re.escape(rows[-1]["date"]) + r" \| )\d+( \|)", re.M)
mask = lambda t: last.sub(r"\1#\2", t)
stale = [p.name for p, t in ((OUT_MD, md), (OUT_SVG, svg)) if not p.exists() or mask(p.read_text()) != mask(t)]
if stale:
sys.exit(f"timeline --check: STALE {stale} — run tools/timeline.py")
print(f"timeline --check: fresh ({len(rows)} rows)")
+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 `6ea94447d7` (2026-10-01T16:25:39Z); 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 `0cb2b6b522` (2026-10-01T16:47:07Z); 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.
**19122 types explain 498863 of 502983 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.