Nocter v0.3.0
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, explicitusing
allocation 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'sconstructdeclaration. The compiler does not synthesize compatibility
surfaces for detached declarations. - Closure capture is explicit. Readonly, readwrite, and owned captures use
&name,&+name, and
move 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.