This website requires JavaScript.
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