Skip to content

ADR-0204 close: refutation record + retrospective + v2.2.1 version bump#146

Merged
chaploud merged 1 commit into
mainfrom
develop/binary-size-close-v2.2.1
Jul 16, 2026
Merged

ADR-0204 close: refutation record + retrospective + v2.2.1 version bump#146
chaploud merged 1 commit into
mainfrom
develop/binary-size-close-v2.2.1

Conversation

@chaploud

Copy link
Copy Markdown
Contributor

Summary

Closes the binary-size campaign (ADR-0204; kickoff #144, stage 1 #145). Docs + ledger + version bump only — no src/ change.

  • Lesson 2026-07-16-outlining-once-called-handlers-size-neutral.md: the D-521 fn-pointer-table probe left emit.compile at 707 KB and grew the binary +28.8 KB (reverted). A giant symbol made of once-called inlined handlers is aggregation, not duplication — out-lining is size-neutral. The predictive question is "how many call sites share this code?", not symbol size (contrast D-522's ×64-duplicated thunks: −1.08 MB).
  • debt.yaml: D-521 discharged (size premise measured-refuted); D-522 reworded to its stage-2 residual (~200 KB, demand-driven).
  • ADR-0204: Status → Implemented; D2 amended with the refutation.
  • handover: campaign section closed.
  • CHANGELOG + build.zig.zon → v2.2.1: D-522 stage 1 shipped −21% ReleaseSafe CLI (5,282,584 → 4,173,736 B) with no API/behaviour/JIT-output change → patch release.

Tag v2.2.1 follows after this merges (user-granted in-session per ADR-0156).

….2.1

- Lesson 2026-07-16-outlining-once-called-handlers-size-neutral: fn-ptr
  table stage A left emit.compile at 707 KB and grew the binary +28.8 KB
  (reverted) — a giant symbol from once-called inlined handlers is
  aggregation, not duplication; out-lining is size-neutral. Predictive
  question = "how many call sites share this code?", not symbol size.
- debt: D-521 DISCHARGED (size premise measured-refuted); D-522 reworded
  to its stage-2 residual (demand-driven, ~200 KB).
- ADR-0204: Status -> Implemented; D2 amended with the refutation.
- handover: campaign section closed.
- CHANGELOG + build.zig.zon: v2.2.1 (D-522 stage 1 = CLI -21% ReleaseSafe,
  no API/behaviour/JIT-output change).
@chaploud
chaploud enabled auto-merge (squash) July 16, 2026 04:14
@chaploud
chaploud merged commit 62b13a6 into main Jul 16, 2026
5 checks passed
@chaploud
chaploud deleted the develop/binary-size-close-v2.2.1 branch July 16, 2026 04:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant