Expand description
L3 - the Davinci reactivity IR (codename Impeto): the backend convergence layer for DOM and Vapor.
Experimental: the stage API may change in any alpha release; record intentional breaking changes in the release notes.
Impeto is flat and id-based by design. L2 owns the semantic tree; L3 owns
update ordering, effect grouping, and backend decisions that must be shared
rather than rediscovered by each emitter. Ordering constraints are explicit
op::StateEdge values, regions are named by op::RegionId, and the
phase validator rejects unresolved edges, malformed region nesting, and
effect scopes that leak.
The crate is no_std + alloc from birth so L3 artifacts can be printed,
validated, and replayed on the same portability lane as the earlier Davinci
stage libraries.
Placement alternatives (hoist / cache / inline / group) are an explicit
overlay on the op graph; see placement.
The operation semantics review point lives in
docs/davinci/plan/impeto-ops.md
and is kept in sync with op::OpKind plus the Lean reference runner.
Modules§
- decision
- Shared backend decisions keyed by the owning L2 artifact’s node ids.
- dump
- The Impeto folio page.
- extract
- P3-10 try-measure-commit extraction.
- jsx
- Vue JSX decisions beside the sole original owning L2 File.
- lattice
- P3-2 reactivity lattice facts for L3.
- op
- The Impeto op family: flat, id-addressed operations plus explicit state edges.
- operand
- Value operands stored beside the compact operation graph.
- optimize
- The L3 optimization pipeline:
annotate-placements, thenextract-placements, driven by the pass manager. - placement
- Explicit placement alternatives for L3 ops (P3-10).
- trace
- Executable backend-observation traces for Impeto programs.
- values_
dump - Owned value page paired with the graph-only
L3Pageview. JSON tuples keep arbitrary authored strings line-atomic without inventing another quoting grammar. Tuple equality is document equality only. - verify
- The Impeto phase validator.