Skip to content

Deterministic cooperative task layer that rides the trace tape (task_spawn / task_send / task_recv / task_yield) #408

Description

@InauguralPhysicist

Why — the biggest contradiction in the language today. recv/try_recv/recv_timeout fail loudly under EIGS_REPLAY (#148, replay_blocks in src/builtins.c; docs/TRACE.md) — deterministic replay, the signature niche, currently EXCLUDES concurrent programs. Meanwhile two consumers independently reinvented the missing layer downstream: EigenOS task_eval (strings-by-copy isolation, window=task, hung-window detection) and liferaft's hand-rolled deterministic scheduler. Upstreaming it converts the contradiction into the headline capability no incumbent has: byte-identical replay of concurrent executions (Go/BEAM/Rust users need rr or Antithesis-class external heroics for this).

What.

Acceptance. A multi-task program with message passing records under EIGS_TRACE and replays byte-identically under EIGS_REPLAY; JIT stays enabled (verify via the bench harness MT-vs-task workload); liferaft migration green.

Effort: weeks (VM change; the extend-vm all-N-sites checklist is the discipline). Blocks: lib/supervise.eigs. Source: 2026-07-04 survey (concurrency dimension — the study's single largest strategic item).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions