Commit Graph

  • e9c39bff46 roadmap: introspection & observability shipped as RFC 016 smarm-agent 2026-06-19 10:20:37 +00:00
  • 2d15834b24 RFC 016 Chunk 4: observer example with ps-style + tree dump smarm-agent 2026-06-19 10:20:09 +00:00
  • 6df4cd4a0b RFC 016 Chunk 4: observer gen_server (feature-gated) smarm-agent 2026-06-19 10:18:54 +00:00
  • 48d47c45c9 RFC 016 Chunk 2c: approximate per-actor time-budget (reductions-like) smarm-agent 2026-06-19 08:47:58 +00:00
  • e93b3120ec RFC 016 Chunk 2b: per-actor messages-received counter smarm-agent 2026-06-19 07:34:32 +00:00
  • 354eef9f88 RFC 016 Chunk 2a: per-actor timeslice overrun counter smarm-agent 2026-06-19 07:18:03 +00:00
  • 7ef915c81e RFC 016 Chunk 3: parentage tree view smarm-agent 2026-06-19 06:33:21 +00:00
  • c66691943d RFC 016 Chunk 1: runtime introspection read primitive smarm-agent 2026-06-19 06:31:10 +00:00
  • fc014c4e54 roadmap: gen_server time patterns shipped (RFC 015); substrate status recorded smarm-agent 2026-06-18 19:31:06 +00:00
  • f454a9195a gen_server: docs — disambiguate client call deadline from server idle timeout (RFC 015 §7) smarm-agent 2026-06-18 19:20:12 +00:00
  • 1df85e2384 gen_server: drop-guard drains live timers + debug_assert no leak (RFC 015 §4.7) smarm-agent 2026-06-18 19:19:15 +00:00
  • 8c8af55928 gen_server: idle/receive timeout via select_timeout/recv_timeout + handle_idle (RFC 015 §4.4) smarm-agent 2026-06-18 19:17:20 +00:00
  • c0cfa01f37 gen_server: tick_every periodic sugar — loop-driven re-arm via factory + Sys::Tick (RFC 015 §4.3) smarm-agent 2026-06-18 19:13:52 +00:00
  • 401a1465d5 gen_server: TimerHandle arm_after/cancel + Sys::Timer dispatch (RFC 015 §4.3, §5) smarm-agent 2026-06-18 18:58:00 +00:00
  • 57eadb5c6c gen_server: type Timer + handle_timer/handle_idle; fold control into Sys channel (RFC 015 §4.5, §6) smarm-agent 2026-06-18 18:54:24 +00:00
  • 47d75d1ead timer: send_after_to — channel-targeting send_after sibling (RFC 015 §5) smarm-agent 2026-06-18 18:50:59 +00:00
  • 61520bf2cc timer: send_after / cancel_timer message-delivery substrate smarm-agent 2026-06-18 14:28:38 +00:00
  • 5cb7f6a491 roadmap: 013/014 shipped, gen_server time patterns up next smarm-agent 2026-06-18 12:32:12 +00:00
  • ecb0835aa7 examples: typed_actor, named_genserver, worker_pool for the new surface smarm-agent 2026-06-18 11:02:35 +00:00
  • a866e34b52 mailbox: typed-path producers, by-name gen_servers, root-exit teardown (RFC 014) smarm-agent 2026-06-18 11:02:27 +00:00
  • 4c56938f0b mailbox: Phase 4b — send_dyn bare-pid escape hatch (RFC 014 §4.6) smarm-agent 2026-06-17 11:45:48 +00:00
  • 3cec3ba1a1 mailbox: Phase 4a — direct identity-bound send to Pid<A> (RFC 014 §4.2) smarm-agent 2026-06-17 11:43:16 +00:00
  • f5fbb5b144 mailbox: Phase 3 — typed Pid<A> over a raw inner identity (RFC 014) smarm-agent 2026-06-16 22:08:47 +00:00
  • 48bdbada2b mailbox: Phase 2 — registry resolves name/pid to a messageable actor (RFC 014) smarm-agent 2026-06-16 19:17:45 +00:00
  • 48bc636552 mailbox: Phase 1 — typed-address tokens (RFC 014) smarm-agent 2026-06-16 18:33:32 +00:00
  • ae9f0e864a docs(roadmap): RFC 013 (typed addressable mailboxes) up-next smarm-agent 2026-06-16 14:04:11 +00:00
  • 56f2fc573c pg: canonical usage doctest on the module smarm-agent 2026-06-15 20:05:46 +00:00
  • 3262c9527b pg: Phase 3 — generation-checked liveness backstop on reads (RFC 012) smarm-agent 2026-06-15 19:53:10 +00:00
  • 6464c3e92b pg: Phase 2 — liveness & the monitor death hook (RFC 012) smarm-agent 2026-06-15 17:24:48 +00:00
  • b78311bc88 pg: Phase 1 — identity & storage substrate (RFC 012) smarm-agent 2026-06-15 16:41:30 +00:00
  • 4d4a2a6c9b roadmap: ship v0.9, promote Process groups to up-next smarm-agent 2026-06-15 12:39:30 +00:00
  • 6566e2f613 roadmap: remove RFC 004 spinning sections (3. Spinning workers, 4. RFC 004 bench + interaction pass) smarm-agent 2026-06-15 11:22:21 +00:00
  • 793941693f benches: salvage generic tooling from the excised spin work smarm-agent 2026-06-15 11:21:43 +00:00
  • 64bd7e81a5 docs: neutralize excised-spin references in per-switch N=1 profile smarm-agent 2026-06-15 11:21:09 +00:00
  • 371915ad07 docs: per-switch N=1 local profile — shims are ~1% at N=1; cost is schedule_loop + run-queue + a hot-path futex_wake (revises handoff shim hypothesis to a many-core one) smarm-agent 2026-06-14 18:58:26 +00:00
  • 7a42d49746 bench: add switch_cost local-mode per-switch microbench (rdtsc+wall, RFC per-switch spike) smarm-agent 2026-06-14 18:56:16 +00:00
  • b0c9685c89 plan: roadmap refresh smarm 2026-06-13 18:58:42 +02:00
  • cc4000a165 fix bug in test that only shows on multicore enviroments smarm 2026-06-12 00:05:55 +02:00
  • 156dcca496 doc: note bug report form urus agent smarm 2026-06-12 00:05:33 +02:00
  • 8e5b754249 docs(roadmap): record the chunk-2 session candidates — no-io idle sleep gap, cross-thread unpark Claude 2026-06-11 21:15:45 +00:00
  • 7bab4d23ea fix(scheduler): entry-side check_cancelled in park_current — stop against a QUEUED actor was lossy Claude 2026-06-11 21:15:03 +00:00
  • eddf3fe929 fix(runtime): wake idle sibling schedulers at termination Claude 2026-06-11 21:03:20 +00:00
  • 51f1a61a40 perf: check in cleaner baseline smarm 2026-06-11 23:07:23 +02:00
  • 1ed179fc12 benches: stable medians via independent process sets in sweep.py Claude 2026-06-11 21:01:28 +00:00
  • f9f60a43d1 benches: add SMARM_BENCH_SETS (default 5) for stable medians Claude 2026-06-11 20:50:29 +00:00
  • 37d931968e fix(scheduler): align(64) on SchedulerStats to prevent false sharing smarm 2026-06-11 22:37:47 +02:00
  • 2708042990 feat(scheduler): RFC 005 wake slot — per-scheduler capacity-one wake cache Claude 2026-06-11 05:13:41 +00:00
  • f09e992f32 commit new baseline before perf work smarm 2026-06-11 20:18:51 +02:00
  • 393cdd01f4 feat(select): fd arms in select + timed fd waits (RFC 008 phase 1) Claude 2026-06-11 11:28:58 +00:00
  • 4e4b617559 docs(roadmap): restructure around the rq shootout verdict Claude 2026-06-10 21:58:40 +00:00
  • 7a244d057c docs(deep-dive): update to v0.8 — slot slab, park-epoch, run queue variants, gen_server, OTP Claude 2026-06-10 21:44:09 +00:00
  • 0e3df6ec5b docs(roadmap,readme): v0.8 complete — record outcomes and deviations Claude 2026-06-10 15:08:04 +00:00
  • f6969e538b fix(io): deregister a stopped actor's fd wait on the unwind path Claude 2026-06-10 15:07:35 +00:00
  • 24b95c99ae feat(gen_server): handle_down — runtime monitor forwarding via ServerCtx/Watcher Claude 2026-06-10 14:59:44 +00:00
  • e5d1b3b54b feat(gen_server): handle_info — static info arms selected ahead of the inbox Claude 2026-06-10 14:56:51 +00:00
  • e545f818fa docs(roadmap): v0.8 plan — handle_info/handle_down on select; io fd hygiene Claude 2026-06-10 14:53:10 +00:00
  • a69b296190 docs(roadmap,readme): v0.7 complete — record outcomes and deviations smarm 2026-06-10 07:48:27 +00:00
  • a0a93b61bb feat(channel): select_timeout — bounded select on a stateless stamped timer arm smarm 2026-06-10 07:46:52 +00:00
  • 00128f32a2 feat(channel): select — ready-index wait over multiple receivers smarm 2026-06-10 07:45:00 +00:00
  • 400854ac5d refactor(wakes): epoch-stamp every registration-based wake; retire per-primitive wait seqs smarm 2026-06-10 07:15:29 +00:00
  • 4913835c02 feat(slot_state): park-epoch in the slot word; consuming, epoch-matched unparks smarm 2026-06-10 07:07:44 +00:00
  • aa295582c4 docs(roadmap): v0.7 plan — select via epoch-stamped consuming wakes smarm 2026-06-10 07:02:03 +00:00
  • 088280f3c9 docs(roadmap,readme): v0.6 complete — record outcomes and deviations smarm 2026-06-09 22:58:26 +00:00
  • 90b7040504 feat(gen_server): call_timeout via recv_timeout on the reply channel smarm 2026-06-09 22:57:31 +00:00
  • 134ff52c8a feat(channel): recv_timeout - bounded receive on the WaitTimeout machinery smarm 2026-06-09 22:56:19 +00:00
  • 2c7cf0b811 feat(registry): named pid registry as a bimap smarm 2026-06-09 22:53:43 +00:00
  • 8ff6cf4afd feat(channel): migrate Inner to RawMutex; two-class lock order (Leaf -> Channel) smarm 2026-06-09 22:51:37 +00:00
  • d789d301e0 docs(roadmap): split v0.6 into up-next / later; add RFC 004 summary smarm 2026-06-09 21:58:42 +00:00
  • 5428697f9e docs(roadmap): consolidate task.md + ROADMAP_v0.5.md into ROADMAP.md smarm 2026-06-09 21:53:01 +00:00
  • a7ca6646d7 docs(bench,test): READMEs for benches/ and tests/ Claude 2026-06-09 21:35:08 +00:00
  • 039703dbeb feat(safety): phase 5 — loom model checking + invariant audit/assertion sweep Claude 2026-06-09 21:27:45 +00:00
  • 6d9f3698d4 feat(bench): phase 4 — run-queue bench harness + shootout driver Claude 2026-06-09 20:44:10 +00:00
  • 1b3b618aa7 feat(runtime): phase 3 — pluggable run queue (rq-mutex / rq-mpmc / rq-striped) Claude 2026-06-09 20:34:32 +00:00
  • a78e17e1eb docs(roadmap): phase 2 done; record the thread-local-guard rule; sharpen the channel fast-follow rationale (cross-thread std MutexGuard release is UB) Claude 2026-06-09 20:09:09 +00:00
  • 5e0c9d45da feat(runtime): phase 2 — fixed slab, per-slot packed-atomic state machine, raw cold locks Claude 2026-06-09 20:08:12 +00:00
  • 453f6f491f fix(runtime): stale-PID pop retries immediately instead of taking the idle path Claude 2026-06-09 19:08:25 +00:00
  • 3c7e26bc98 feat(runtime): phase 1 — peel timers/io/monitor-id out of SharedState; gate stop sentinel behind PREEMPTION_ENABLED Claude 2026-06-09 18:56:17 +00:00
  • 89fb13e29a feat(arch): port context switch + cycle counter to aarch64 arm-port smarm-dev 2026-05-29 06:40:05 +00:00
  • d908eb3f95 chore(release): v0.4.0 smarm-dev 2026-06-07 21:54:22 +00:00
  • 024abc2e73 docs: reflect arm-port carve-out; master is x86-only, aarch64 on branch smarm-dev 2026-06-07 21:54:04 +00:00
  • 518103750b feat(monitor): demonitor + per-monitor MonitorId (roadmap #5) smarm-dev 2026-06-06 09:12:22 +00:00
  • a7832f4a8c docs(roadmap): mark gen_server done; add module to README smarm-dev 2026-06-06 08:13:00 +00:00
  • 55221e9e98 feat(gen_server): synchronous call / async cast over a single actor (roadmap #5) smarm-dev 2026-06-06 08:12:28 +00:00
  • 02f55fa0a0 docs(roadmap): mark selective receive (#4) done smarm-dev 2026-06-05 21:45:26 +00:00
  • 2dd61d4a19 feat(channel): selective receive — recv_match + try_recv_match (roadmap #4) smarm-dev 2026-06-05 21:44:49 +00:00
  • 70bd237277 docs: mark links/trap_exit (#3) done; refresh supervisor + README smarm-dev 2026-06-05 21:17:19 +00:00
  • 8ac11a57ac feat(link): bidirectional links + trap_exit (roadmap #3) smarm-dev 2026-06-05 21:17:12 +00:00
  • 59998ce79e docs(roadmap): mark cooperative cancellation (#1) and supervisor strategies (#2) done smarm-dev 2026-06-05 17:48:03 +00:00
  • 68c7c96749 feat(supervisor): one_for_all and rest_for_one strategies + ordered shutdown smarm-dev 2026-05-29 22:53:31 +00:00
  • c6136b2553 fix(runtime): don't let orphaned timers block shutdown smarm-dev 2026-05-29 22:53:31 +00:00
  • d9a6520a24 feat(cancel): cooperative cancellation via sentinel unwind smarm-dev 2026-05-29 22:40:07 +00:00
  • 09236b8bf4 feat(supervisor): one-for-one supervisor with restart policies + intensity cap smarm-dev 2026-05-29 07:09:50 +00:00
  • 461de2c451 feat(monitor): unidirectional one-shot process monitors smarm-dev 2026-05-29 07:04:38 +00:00
  • 14dc7a79cf test(context): guard XMM-not-saved assumption against preemptive switch smarm-dev 2026-05-28 15:09:07 +00:00
  • 7d44b20baf perf(scheduler): fold timer+IO drain into one lock, skip clock read when no timers smarm-dev 2026-05-28 06:29:58 +00:00
  • 6d17254ae3 docs(context): fix off-by-one-slot error in init_actor_stack layout comment smarm-dev 2026-05-28 05:50:18 +00:00
  • 594392a5ae examples: deterministic single-scheduler context-switch probe smarm-dev 2026-05-28 05:50:18 +00:00
  • 389ddec56d License: MIT -> Do what you want smarm 2026-05-26 23:14:46 +02:00
  • 7746dca69b fix(runtime): handle timer firing while actor is still Runnable in sleep() smarm 2026-05-26 21:58:14 +02:00
  • 72f5d38e5d perf: reduce scheduler mutex contention + stack pool smarm 2026-05-25 23:28:11 +02:00