Public verification and runtime materialization entry point.
The compiler is the only path from the public Docket.Graph document to the
internal Docket.Runtime.Graph. verify/2 and compile/2 run the same
pipeline - including lowering and lowered-result validation when no blocking
diagnostics were found - and differ only in what they return: verify/2
returns the annotated public graph, compile/2 returns the runtime graph.
Representable graph invalidity surfaces as Docket.Graph.Diagnostic values
attached to the returned graph, never as exceptions. Stale diagnostics on
the input graph are ignored; every call produces a fresh diagnostic list.
Options
:profile-:publish(default) or:run; both apply identical rules in v0.1:max_supersteps- runtime default cycle bound used when the graph does not declare a"max_supersteps"policy
Summary
Functions
Compiles a public graph into an internal runtime graph.
Verifies that a graph is publishable/runnable.
Types
@type opts() :: keyword()
Functions
@spec compile(Docket.Graph.t(), opts()) :: {:ok, Docket.Runtime.Graph.t()} | {:error, Docket.Graph.t()}
Compiles a public graph into an internal runtime graph.
@spec verify(Docket.Graph.t(), opts()) :: {:ok, Docket.Graph.t()} | {:error, Docket.Graph.t()}
Verifies that a graph is publishable/runnable.
Returns the graph with fresh diagnostics attached. {:ok, graph} may still
carry warning or info diagnostics; {:error, graph} carries at least one
error diagnostic.