Norm 0.12
Norm 0.12 completes the vertical implementation of annotations and typed reflection.
Language
annotationdeclarations explicitly define their targets andsource,binary, orruntimeretention.- Annotation fields use a restricted set of scalar constant types and may declare defaults.
@Name(...)applies metadata to packages, types, fields, constructors, functions, parameters, and locals.- Annotation arguments are named; target validation, constant validation, and default normalization are compile-time operations.
reflect<T>()producesType<T>;name()returns the complete type display name andannotation<A>()reads runtime metadata with a typed nullable result.- Reflection observes static metadata and cannot alter type checking or control flow.
Toolchain
- Syntax, Semantic, Bound, and Core use dedicated annotation schema, application, target, and value models.
- Core identity advances to Schema V8 and Language Semantics V8.
- Source applications remain semantic-only, binary and runtime applications enter Core, and Truffle registers runtime applications only.
- The formatter, package-header reader, parser recovery, Language Server, and VS Code grammar recognize annotations.
- Cross-package compilation and real execution share the same metadata model.
See the annotation specification, annotation syntax, and annotation tour for the complete rules.