Archive — history, not state. Kept for its reasoning and its evidence; its plan is closed.
Night of 2026-08-04 → 05 — Table of Contents
Integrator: Claude (Fable). All implementation by Opus 5 subagents in isolated worktrees; every landing gated and pressed per protocol. Read this file first; each row links to the full report.
The one-paragraph summary
The P arc is complete and every workstream landed. The ship/boot press
now runs through the semantic linker (pit.mcode.program@1); P7 closed
itself on an honest census and P8’s charter was refuted by measurement
(there is no per-call registry hop — the call sequence was streamlined
instead, native calls −8–9%); the L6 three-platform proof is CONFIRMED
(mac/linux/windows binaries, each booting standalone from its embedded
cart + qop sidecar, hashes in cross-builds.md). The compiler got its two
biggest wins in months from outside the compiler: a runtime-global
mutex on every image call (press sys −77%, make seed −36%) and a
reseed-identity leak (warm press 9×); plus closure memoization, fleet-width
clamp, and two cache-correctness defects found and fixed (source-snapshot
staleness; the identity slice). On program output: link time is the only
lever that clears your 5%-for-2× bar (−5.9% bytes, literal pool −58.6%);
cross-unit inlining works (−8.1% linked instructions) and the export
recognizer now finalizes real modules (0 → 142 sites) — but none of it
reaches the shipped cart until the pool-lane press decision (top of
the list below). Join-types measured under the bar at both stages and its
link default was flipped OFF pending your ruling. dev is green at every
merge; every claim above has a paired A/B number in its report.
Rulings this plan executed (yours, at kickoff)
- Press switch flipped EARLY — ship/boot through
pit.mcode.program@1, gated on fixpoint + linked/unlinked differential. - P8: land what proves safe; unproven parts ship as prototype + writeup.
- Landing policy: continuous to dev, minimal gates per landing.
- Machine: full throttle authorized.
- Standing: no PGO work; program speed/size > compiler speed; mostly-pit (no C rewrites of pit-side logic).
Documents
| Doc | What it answers | Status |
|---|---|---|
| NIGHT-LOG.md | Chronological log: every landing, every gate result, every deviation | live all night |
| switch-report.md | The compile-toggle report: representative artifact, switches × {instructions, guards, size}, link-time contribution | cp/switch-report — clerk matrix: type_checks +23.3% if off; link −5.88% bytes at 1.65×, the only bar-clearing lever; dev/ship/small ≤0.32% apart |
| seed-speed.md | Where seed realization time actually goes; ranked fix candidates; what was corrected | pin-lock (sys −77%), reseed identity (9×), width clamp LANDED; CP9.5 closed; double-parse refuted |
| battery-speed.md | Why the test battery is slow; the stupid things found; changes made (all flagged for your review) | tests are FREE (µs); closure memo (walk 13×) + fuzz join sampling (−29%) LANDED |
| link-opt.md | CP2 phase 3 + join-facts results: seam guards before/after, inlining numbers; Export recognizer — why finalized_sites was 0, the per-member exactness rules, 0 → 142 finalized sites | all three LANDED; join link default flipped OFF (integrator); recognizer contract change awaits ratification (decision 2) |
| press-switch.md | The ship/boot flip: what changed, artifact deltas, gates that held it | LANDED — 68 sections shrink; +292KB linker-in-closure (decision 4); §5 carries 9 in-flight decisions |
| p8-native.md | Native bake-in + direct C-call finalization: what landed, what’s prototype, the ABI seam notes | p/native-bake — charter premise refuted (no per-call registry hop; the member load is already hoisted); the call SEQUENCE landed instead: −8 to −9% per native call, no format change, no identity stamp, no ABI move |
| cross-builds.md | L6 status: linux/windows/macos binaries, embedded boot cart + mcode sidecar — what was produced and verified | CONFIRMED — all three boot standalone and answer ps; p/cross-artifacts |
| benchmarks.md | Compiler-speed trendline across the night’s landings | assembled from paired A/B numbers only |
| staleness.md | Warm-store staleness: a linked package’s .pit/sources snapshot served unchecked to the eval compile lane — root cause, fix, regression test, closure-cache verdict | cp/warm-staleness |
Morning decisions queued for you
Ranked by how much they unblock.
- Pool-lane press redesign — press modules compile on the static
lane, so finalization + cross-unit inlining reach tests and censuses
but NOT the shipped cart (
finalized_sites=0at every real press). Enablinglink:"pool"for presses meansfunction_refacross cart sections — a cart output-shape change. This is the gate between the whole call-directness arc and the artifact you ship. (press-switch.md §4, link-opt.md.) - Ratify the export-recognizer contract change — module export
records are NOT frozen at runtime (contra docs/spec/stone.md:54);
finalizing them is sound only under a complete consumer covering,
which the linker now proves per program. The old always-generic test
was replaced. Cleanest long-term fix: make the compiler emit the
stonethe spec already promises — then the census becomes belt and suspenders. Also rule on the spec text itself. (link-opt.md §Export recognizer.) - Join-types link default — I flipped it OFF (−4.71% guards for 4.39× linked-streamline wall fails your 5%-for-2× rate). Reverse or ratify; a size-gated lattice (cost tracks function size, 4.39× vs 1.94×) could earn the default back. (link-opt.md §Join facts.)
- The linker ships inside the shop closure (+292KB cart: importing mcode_link into boot_cart.cm puts it in the cart because the shop actor’s closure IS the cart). Options: accept, lazy-load, or press via a tool outside the shop closure. (press-switch.md §3.)
- Multi-unit differential fuzz arm — the random linked/unlinked
arm links single-unit programs only; cross-unit inlining is covered
by deterministic golden tests, not the differential oracle.
mach_loadneeds realization state for a two-unit random arm. (link-opt.md §Cross-unit inlining.) - press-switch.md §5’s nine in-flight decisions — most load-bearing: link failure REFUSES the press (no fallback); stripping left inert pending CP7; module rows’ mcode.hash names the unlinked unit while mach names the linked pool.
- make-seed presses the same 149 derivations 3× into empty shops (86% of seed wall). Sharing a store needs a fixpoint-independence ruling — the two-press byte-identity proof must not become a cache tautology. (seed-speed.md §2.)
- dev/ship/small differ ≤0.32% on output, and dev is strictly worse AND slower to compile than ship. Are three profiles real, or is dev just ship-without-a-reason? (switch-report.md.)
- Pre-existing extended-suite failures (5–6 depending on base: mach_pool_emit ×2, heap 30s timeout, network_info, recipes, shop_resolve) — pre-date tonight, reproduce on clean dev; the heap timeout alone is 30s of every extended run. Fix or triage-list them before the big battery. (battery-speed.md.)
- Two shipped-mcode defects found in passing:
archive/qop.cmfn 56 carries ajump_falseto a label that exists nowhere (7 of 99 modules have one — eliminated panic blocks leave dangling branches); and a cache-hitpit compile linked_planhung past 600s afterload_cached_executablewhile the cold run finished in 97s. (link-opt.md, switch-report.md.) - Deferred by your standing rulings, unchanged: the big battery + fix round now that the arc is landed; L2b PGO drain rebuild (stash intact on the lane-cp worktree); range_reconciliation (22.4% of streamline) as the next compiler-speed target; windows-smoke in-container press “target stopped” mystery (cross-builds.md).
Source: plans/archive/night-2026-08-04/TOC.md