mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-04 16:28:11 -04:00
T1: kit-corpus after timeline fix; census outputs
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -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,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
|
||||
|
||||
@@ -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
@@ -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.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user