Scheduler
Scheduler
Draft 0.1 uses a single-threaded scheduler.
Why single-threaded
- simpler semantics
- easier determinism
- lower implementation complexity
- closer alignment with source-order effect rules
Responsibilities
- manage ready tasks
- manage suspended tasks
- resume work when dependencies resolve
- preserve observable ordering for effects
- support explicit deferred tasks
Current implementation note
The repository already has a shared scheduler abstraction used by the runtime and interpreter for deferred execution and ordinary effectful native calls. A remaining roadmap item is broader long-lived dependency draining across a whole evaluation.