Skip to content

Norm 0.14 ​

Norm 0.14 establishes independently evolvable compiler-stage contracts and aligns incremental compilation, content storage, and backend reuse with stable identity boundaries.

Compiler ​

  • Semantic analysis is composed from import, type, expression, annotation, constructor-flow, and visibility components that produce the single immutable SemanticModel.
  • Declaration identity is derived from the document, declaration kind, name, and canonical signature. Token anchors preserve diagnostic and semantic-contribution mapping across whitespace edits and declaration reordering.
  • Declaration additions, removals, and overload-family changes invalidate semantic dependents. Independent compilation units run concurrently while each unit commits in order.
  • Bound/Core node families are defined by bound-core-schema.json, with generated contracts and build tests covering sealed hierarchies and traversal.
  • Built-in intrinsics, runtime shapes, and the exception ABI are defined by builtin-abi.json; its generated fingerprint participates in backend executable identity.

Core and execution ​

  • Artifact identity is separated into public ABI, Core code, runtime metadata, debug information, executable, and release-bundle identities so each cache follows its actual inputs.
  • The standalone Truffle backend reuses lowered programs by ExecutableId and maps source locations through the current artifact's authoring sidecar.
  • Core canonicalization reports component, refinement, search, memo, and automorphism-pruning metrics while preserving deterministic results for symmetric definition graphs.
  • The file definition store coordinates writes by content shard and serializes root-capacity maintenance after publication.

Migration ​

Java compiler embedders should use generated ABI types from dev.w0fv1.norm.abi and select PublicAbiId, CoreCodeId, MetadataId, DebugInfoId, ExecutableId, or the composite ArtifactId for the relevant boundary.

The language layer continues to provide the Norm 0.13 annotation, reflection, and std.validation capabilities. See the compiler architecture for compiler stages and identity boundaries.

Norm 0.25