chore(release): v0.6.0 — RFC 019: actor stack reserve & shrink
Per-actor stack shapes on every spawn surface (SpawnOpts stack_reserve/ guard_size, Config defaults, pool rule: only default-shaped recycle); sampled stack high-water + MADV_FREE shrink at actor-park (THRESHOLD 256 KiB, COOLDOWN 64 parks, redzone 1 page); pool-recycle MADV_DONTNEED above the retained 64 KiB entry end; SIGSEGV overflow diagnostics (two-tier: in-guard definitive / 1 MiB overshoot 'stepped over', prior handler chained for foreign faults) with per-scheduler sigaltstack; and the per-actor introspection surface (ActorInfo.stack: reserve, guard, sampled depth, parks_since_shrink, shrinks). Amendments ratified during implementation, for the RFC changelog: - DEFAULT_STACK_GUARD 64 KiB -> 1 MiB, following the kernel's post-Stack- Clash stack_guard_gap convention; PROT_NONE width is VA-only and free. - §7's motivating segfault was a cargo-vendored gz build, not SQLite as the RFC text says (cc-built C lacks -fstack-clash-protection; distro libraries have it — the risky class is vendored builds). - §4 hibernate() deferred to the jar (bolt-on: force-flag on the §3 shrink path, ~10 lines when wanted). Gates (jobrunner box, 2026-08-08): reclaim gate PASS at c3 and again at tip (3.0 MiB LazyFree -> kernel reclaim -> Rss to one live page -> re-spike bit-identical, live data intact; MADV_PAGEOUT stands in for memcg — cgroup2 is RO in the job container — driving the same reclaim path). E1 interleaved A/B vs v0.5.0: every ka cell (the E1 subject) within +0.3..+2.9% at tip; close-mode control cells within noise except t8-c4 close, which is bistable (~40-44k vs ~46-49k modes for BOTH variants, base self-disagrees by 11% across rounds); 6 rounds across two runs are inconclusive there and a 10-round focused run is noted in the handoff as deferred follow-up, accepted for this release. No breaking API changes since v0.5.0: SpawnOpts fields and ActorInfo gained members (exhaustive-construction downstream will need the new ActorInfo.stack field; urus does not construct it).
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "smarm"
|
||||
version = "0.5.0"
|
||||
version = "0.6.0"
|
||||
edition = "2021"
|
||||
rust-version = "1.95"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user