diff --git a/docs/tradeoff-curves/sync-commit-staging.md b/docs/tradeoff-curves/sync-commit-staging.md index 03d173c..4909f17 100644 --- a/docs/tradeoff-curves/sync-commit-staging.md +++ b/docs/tradeoff-curves/sync-commit-staging.md @@ -213,7 +213,7 @@ Skipping `index.write()` entirely (fresh `Index::new()`, stamp = 0, so `truncate_racily_clean` can never fire) removes Wall 1. But to seed the in-memory index, `read_tree(HEAD)` materialises all 1179 entries and reads every tree object from the 570 MB pack — **77 s cold** (447 ms only once the windows are resident). -`write_tree_to` is O(changed), but you pay O(N_tree) to build the cache it needs, so +`write_tree_to` is O(changed), but you pay O(`N_tree`) to build the cache it needs, so the index-free path only trades a 611 s hash for a 77 s tree-read. Worse, that `read_tree` drove the `esp_map.c` cache to **7.4 MB resident** — past its own 4 MB soft cap — which left 508 KB of heap and made `repo.blob()`'s zlib `deflateInit` @@ -498,7 +498,7 @@ work, ranked: The cache never scored a hit in four instrumented real-repo runs (`mwindow` absorbs true repetition above `p_mmap`; only new ranges reach the emulation), and the 7.4 MB OOM it was patched to avoid was caused by - the cache itself holding buffers past `p_munmap`. esp_map.c is now the + the cache itself holding buffers past `p_munmap`. `esp_map.c` is now the plain malloc-read/free-at-munmap emulation: honest with `MWINDOW_MAPPED_LIMIT` by construction, ~120 lines lighter, and run 5 confirmed removal is I/O-neutral (even 15 reads _better_ than v2, whose diff --git a/docs/v0.5-palette-and-multi-file.md b/docs/v0.5-palette-and-multi-file.md index bd5bfe2..beb3c63 100644 --- a/docs/v0.5-palette-and-multi-file.md +++ b/docs/v0.5-palette-and-multi-file.md @@ -90,7 +90,7 @@ straight into `>` mode** as a one-command shortcut (both requested by the user machinery). Committed `c535864`. **Three "decide before build" calls:** (1) the idle auto-save is **unformatted** — `:fmt` runs only on explicit `:w`/`:sync`, so tables/blank-lines are never reflowed mid-session; (2) the per-device `auto_sync` -override (card-local `typoena.conf`) is **deferred** — auto_sync is inert in +override (card-local `typoena.conf`) is **deferred** — `auto_sync` is inert in v0.5, so there is nothing yet to override; (3) `> auto sync: ` as a palette command is **deferred to v0.7** — a control that changes a value nothing reads would be a dead switch. `save_on_idle` is honoured host-side: a silent idle