Nocter v0.3.0 Release Notes
Nocter v0.3.0 turns the allocator and ownership foundation from v0.2.0 into a more productive language surface. It adds compiler-tracked lexical regions, typed construction, sequence and iterator composition, callable values, interface default methods, and substantially deeper editor support without introducing runtime dispatch or a process-global allocator.
Highlights
- Ordinary allocating APIs use a statically propagated current allocation context. Lexical
region name using allocator { ... }scopes create shorter storage origins, reject escapes, and clean up correctly across normal and early exits. ExplicitTryAllocatorAPIs retain failure-atomic recoverable allocation. - Nominal types own their public creation APIs in
construct Type { ... }declarations. A type can select one public default construction entry from raw construction, a literal, or an associated function while keeping fields and representation private. - User-defined typed
[]and""literals support generic element packs, explicitusingallocation selection, and sequence spread through copy, borrow, or move modes. - String interpolation produces owned
Stringvalues through trusted formatting capabilities and the current allocation context. - Public
fromcontracts expose result provenance without source-level lifetime parameters. Generic capability sets and body-bearingimpl Interface for Type { ... }declarations provide explicit, statically selected conformance. - Optional and fallible values compose as first-class values. Postfix
?propagates either channel while preserving nested outcome identity through storage, cleanup, ABI classification, lowering, and editor presentation. - Protocol-driven
forloops, conditional iterator conformances, lazy adapters, exact-size preservation, andVecbuilders support collection pipelines without hidden intermediate collections. - Explicit-capture closures implement built-in
&func,&+func, andfunccallable contracts. Interface default methods provide reusable behavior derived only from required capabilities;map,filter, terminal operations, andto_veccompose as statically specialized method chains. - Hover, completion, signature help, definition, references, semantic tokens, and document symbols share compiler-owned occurrence and presentation models. Generic bounds, concrete owners, construction entries, conformance members, callable capabilities, provenance, and allocation effects therefore use the same declaration identities as compilation.
Migration from v0.2.0
- Interface conformance is written as a body-bearing
impl Interface for Type { ... }declaration. Required members belong to that declaration; same-named inherent methods do not establish or override conformance. - Public literal definitions and associated functions that directly produce their nominal type
belong to that type's
constructdeclaration. The compiler does not synthesize compatibility surfaces for detached declarations. - Closure capture is explicit. Readonly, readwrite, and owned captures use
&name,&+name, andmove name; unlisted outer bindings are rejected. - The v0.2.0 contract remains available as a historical reference. v0.3.0 is still a pre-1.0 release and does not promise source or binary compatibility with future releases.
Distribution
The release asset contains one .nocter/ directory with the compiler, version and manifest metadata, license files, and standard library. The supported host and native target are arm64-darwin.
Normal Nocter builds do not require LLVM, clang, as, ld, an external runtime library, or the Xcode Command Line Tools. The compiler emits ARM64 Mach-O executables directly and resolves the standard library relative to its installed .nocter/nocter binary.
Verification
The release gate passed 2,161 library tests, 296 CLI build tests, 6 formatter tests, 15 LSP protocol tests, 449 native run tests, 199 distributed-home tests, and 6 example-corpus tests. Formatting, Clippy with warnings denied, the 50-page public documentation build, optimized local packaging, installed-home doctor, packaged compiler check/run smoke tests, and archive-content inspection also passed. The installed compiler reports Nocter 0.3.0, and repository and packaged homes agree across all Phase 0 through Phase 10 acceptance surfaces.
See the v0.3.0 release record for completion criteria, verification boundaries, and explicit non-goals.
Explicit Limits
- The only supported native host and target are
arm64-darwin. - No source-level lifetime parameters, runtime interface dispatch, async execution, concurrency, workspace package manager, or stable cross-version ABI is included.
- LSP rename, code actions, formatting requests, workspace-wide indexing, and inlay hints remain future work.