Programming Language

Nocter

A self-contained systems language built around simplicity, encapsulation, and foolproof design.

/releases/v0.24.0.md

Nocter v0.24.0 Release Notes

Download nocter-v0.24.0-arm64-darwin.tar.gz

Nocter v0.24.0 completes integer text APIs, makes the subject of external values visible in source, and binds every installed compiler to the exact standard library shipped beside it. The only implemented host and native target remains arm64-darwin.

Explicit Value Subjects

An external function or constant is now used through its module namespace. For example, use std/io followed by io.print(...) makes the owner of print visible at the call site. Selected imports and selected re-exports are reserved for built-in and nominal types, type aliases, and interfaces. use path as alias provides an explicit namespace name when the final module segment is unsuitable or collides with another name.

Constant declarations use ASCII UPPER_SNAKE_CASE. Completion and automatic-import actions emit the same canonical namespace and constant forms accepted by the compiler.

Complete Integer Text APIs

Every built-in integer type now owns parse, to_string, and try_to_string. Decimal parsing requires one complete canonical input and returns absence for malformed or out-of-range text. Owned conversion produces the canonical decimal spelling through either ordinary allocation or an explicit recoverable allocator.

One signed or unsigned decimal scanner owns input grammar, while the existing formatter remains the only decimal digit generator. Narrow integer destinations perform range publication without rescanning input, and the old type-named free functions are not retained as aliases.

Installed Image Integrity

The installed manifest binds the exact compiler file and complete standard-library tree with SHA-256 identities. nocter doctor and every compiler launch reject a mixed or modified toolchain before package analysis. The running compiler must match the compiler inside the selected home, and the standard package declaration must match the installed release.

Release assembly and installation validation use the same deterministic physical-content projection. This keeps path metadata, source interpretation, and artifact integrity in their separate authorities.

Editor Reliability

Workspace diagnostics are now merged from one complete post-transition analysis view. If several packages reach the same physical source, equal diagnostics are published once for that URI, and closing one package cannot clear a diagnostic still contributed by another active scope.

Compatibility

Source that selected an external function or constant must import its module namespace and retain that subject at the use site. Lowercase constant declarations must be renamed to UPPER_SNAKE_CASE. No compatibility lookup, selected-value alias, or alternate constant spelling is provided.

v0.24.0 retains the v0.22.0 ownership, package, collection, JSON, native ABI, and distribution boundaries. It does not add floating point, a second target, persistent compiler caches, or dynamic interface values.

Candidate Qualification

Release-content commit 2e96d14feed60b0e7f33ee3fd9eb5950a6b9efd0 passed two independent locked workspace test runs, each with 1,473 passed, zero failed, and one ignored public-HTTPS test. The HTTPS Git acquisition test passed separately, and warnings-denied all-target Clippy passed in both clean external targets.

Two independent optimized package builds produced byte-identical archives and recursively identical installed homes. The retained archive is 8,177,851 bytes with SHA-256 bf0cafd12b4c7cdc4f7ac467a468035d37ce4ff41d4c3636a1ed2cb0bfadcd06. Fresh extraction passed the complete CLI, public-example, native execution, and framed LSP matrix without changing the installed home. Changing either the compiler or standard-library content was rejected before analysis.