Axis / Build System / Instance
Instance
An Instance is one resolved use of an authored declaration in a dependency and machine context. It owns provider bindings, incoming configuration requests, effective options and selected behavior. Consumers treat its configured state as immutable.
Source and concrete API: instance.go.
Properties
-
Name: the dependency address.Def: the selected authored declaration.Builder: optional default behavior. -
Deps: named provider edges and their constraints.Options: effective configuration. -
Requests: values with contributor name, file, line and ordinal for diagnostics. -
Source,SourceArchive,SourceIdentityandSourcePaths: selected source state and optional disposable inspection information.
Behavior
Instance.Handler selects explicit behavior before a default and never chains callbacks implicitly. Missing optional behavior is represented by its absence.
Closure returns all reachable dependencies of explicit roots. Reference resolves one unambiguous provider inside the supplied dependency scopes; absent or ambiguous matches fail.
State boundary
An Instance records a resolved selection; it is not a registry, downloader or scheduler. Construction and configuration happen before execution consumes its values. Diagnostic provenance must not become semantic configuration merely because a source location changed.
The current representation allows the caller to share one selected node across multiple consumers. It does not automatically manufacture separately configured variants of a declaration. Callers own the graph and must prevent concurrent mutation while it is consumed.