writeonce/docs/plan/oop-vm
shoney.arickathil 4092074201 feat: monitor + time.after (ids 89/90) — the lifecycle slice completes
- monitor(watched, observer, msg): registration lives on the watched
  actor's home thread (kind-7 envelope cross-shard); actor_die walks
  the list; already-dead fires NOW; the notice msg moves; a full
  observer's notice drops with a stderr line (no fiber to trap)
- time.after(ms, addr, msg): per-shard timer list riding the deadline
  machinery (uring tick min + epoll timeout both include timers;
  fired from the same sweep); ms <= 0 delivers now; NO cancel — the
  generation-counter idiom is pinned by run/timer-generation
- runtime_notify: one runtime-sourced delivery path (notices, timers) —
  reserve-or-drop, cross-shard via kind-0 envelopes
- compiler: monitor typed as a bespoke free fn (notice typed against
  the OBSERVER's mailbox — the three-argument deviation, disclosed);
  time.after as a stdlib row whose msg arg is EXEMPT from the module-
  call fresh-arg drop (it moves — the double-own bug the timer fixture
  caught); owner move slots for both
- corpus: run/monitor-death (trap-death + already-dead notices),
  run/timer-delivery (armed + immediate), run/timer-generation
- teardown drops undelivered notices and unfired timers; battery 13/13

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-23 08:56:48 +02:00
..
00-wob-format.md feat: iteration 36 task 5 — operators sample, docs closeout 2026-08-22 21:42:08 +02:00
01-error-catalog.md docs: iteration 15 closeout (Task 5) 2026-08-19 19:23:18 +02:00
02-corpus.md feat(compiler): iteration 5 Tasks 1-4 — modules, language surface, switch, typedef records + enum variants 2026-08-12 14:40:07 +02:00
03-concurrency-coroutines.md docs: arc closeout (T8) — stage 3 landed, chain advances to 22 2026-08-21 13:16:25 +02:00
04-db-binding.md feat: insert executes (iteration 9, Task 3) -- DB_STUB retires for insert 2026-08-15 11:15:06 +02:00
08-builtin-surface.md feat: monitor + time.after (ids 89/90) — the lifecycle slice completes 2026-08-23 08:56:48 +02:00
README.md docs: oop-vm/03 — stackless coroutine contract (no async) 2026-08-21 11:07:52 +02:00

docs/plan/oop-vm/ — OOP + systems track contracts

The normative contract documents both stacks cite. Landed by their named plan tasks:

doc contract plan
00-wob-format.md .wob bytecode format (compiler↔VM) 1
01-error-catalog.md every WO-E### code 2, grows 3/8
02-corpus.md how to add conformance fixtures 3
03-concurrency-coroutines.md stackless fibers, park/resume protocols, reduction budget, the no-async rule arc (was plan 4's slot; that plan ✖ discarded 2026-08-21)
04-db-binding.md row format, WAL records, query subset 5
05-http-service.md route section, trap→HTTP table, JSON subset 6
06-ui-live.md delta frames, subscribe protocol, wo:live 7
07-systems-stdlib.md per-function nil-vs-trap contracts 9
08-builtin-surface.md builtin source names, container/call/entry rules the emitter enforces 3

Specs and plans: docs/superpowers/{specs,plans}/. Repo map: docs/08-project-structure.md.