Skip to content

Status ​

The current formal release is Norm 0.24. This page describes the current toolchain. See the Language Reference for long-term language rules and the version index for per-release delivery records.

Maturity labels ​

LabelMeaning
StablePart of the current release contract, with automated acceptance
ExperimentalImplemented, but its public shape may still change
InternalUsed inside the toolchain without a promised public entry point
PlannedA documented design or direction that cannot currently be used

Language ​

CapabilityStatusSource of truth
Class, Value, InterfaceStableObject model
Data enums and exhaustive switchStableEnum and switch
Nullable types, ?., ??, and control-flow narrowingStableType system
Generic types, functions, methods, and bidirectional inferenceStableType inference
Lambdas, function values, and declaration referencesStableAdvanced function rules
Extension functionsStableFunction reference
ref<T> and lexical lifetimesStableReference rules
Class<T> and typed declaration referencesStableDeclaration references and reflection
Annotations, @Document, and typed interceptorsStableAnnotation specification
Packages, modules, and cross-file visibilityStableModule system
Typed string interpolationStableLiterals
for with break value and else in a value positionPlannedLoop design; the current parser rejects Integer result = for ...
// and /* */ source commentsPlannedThe current lexer treats these markers as operator tokens

Standard library ​

AreaStatus
Core types, collections, Unicode text, Math, TimeStable
Streaming I/O, filesystem, and resource lifetimesStable
HTTP clientStable
Command-line parsing, application runtime environment, standard streams, and subprocessesExperimental
JSON, XML, YAML, and unified structured mappingStable
Validation and TestingStable
Automatic mapping of valuesStable
Automatic mapping of class identity, object graphs, cycles, and polymorphismPlanned
HTTP serverPlanned

See the standard library overview for delivered modules. The source and acceptance programs define public entry points.

Tooling ​

CapabilityStatus
CLI with bundled Java runtime and JVM development entryStable
Formatting, diagnostics, completion, signature help, and hoverStable
Go to definition, find references, prepare rename, and renameStable
Read-only navigation of standard library sourceStable
Official VS Code VSIXStable
DebuggerPlanned
Online playgroundPlanned

Known boundaries ​

  • Automatic serialization currently handles value only.
  • private has a source-file boundary.
  • Generic parameters remain invariant; raw types are unsupported.
  • References cannot be stored in fields, containers, generic arguments, return types, or lambda captures.
  • There is currently no HTTP server, debugger, or online execution environment.

Adoption decisions should use the latest implementation contract and actual acceptance programs.

Last updated:

Norm 0.24 development line