Expand description
The interpreted typed-IR executor (CMP-05, D-01): the SERVE-time topo-ordered
driver that walks the per-cell Dag in dependency order, fills a
CellEnv, and evaluates each CellExpr::Formula through a RECURSIVE
eval_expr.
Phase 11 Plan 05 boundary: this is the RUNTIME run() path — it re-runs an
ALREADY-built+expanded Dag (the server deserializes a pre-built IR + DAG).
Leaf arithmetic routes through the PURE-RUST [super::scalar_eval] via
eval_leaf (no SWC/JS kernel); function dispatch routes through
semantics::apply; range member-keys + 2-D shape come from the public
resolve::expand_range. This crate exports a silent-drop build_dag
(reconstructs edges from an ALREADY-built IR at load time; a failed range
expansion contributes no edge). The finding-pushing DAG-BUILD pipeline
(rebase/loop unroll, run_with_loop) lives in the compiler crate
(Phase 93), which calls THIS run() — extend that pipeline there rather
than shadowing this build_dag.
Order comes from toposort ONLY — NEVER calcChain (RESEARCH Pitfall 3). A
toposort cycle surfaces as ONE located dag/cycle LintFinding.
Structs§
- Eval
Trace - A per-cell evidence record the executor emits as it computes — the classifier consumes it as the deciding evidence for a mismatch. Owned and serde/schemars-clean.
- RunResult
- The result of an executor
run: the computed cell map + the per-cell evidence traces. Owned, serde/schemars-clean.
Functions§
- build_
dag - Build the per-cell dependency
Dagfrom a pre-built IR (the served binary deserializes a pre-built IR and reconstructs the DAG ONCE at load). - run
- Walk the per-cell
Dagin toposort order, fillingenvfromseed, and compute every cell inir. Returns the computed{cell_key -> CellValue}map together with per-cellEvalTraceevidence, or ONE locateddag/cycleLintFindingwhen the DAG is cyclic.