1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//! 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`](../../../docs/davinci/plan/impeto-ops.md)
//! and is kept in sync with [`op::OpKind`] plus the Lean reference runner.
extern crate alloc;