Programming Language

Nocter

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

/development/milestones/v0.24.0-release-preparation.md

v0.24.0 Release Preparation

Status: release candidate qualified, published, and externally audited (2026-09-01). This record owns the candidate identity, qualification contract, and final local artifact evidence. The immutable publication evidence is ../releases/v0.24.0.md.

Release Boundary

v0.24.0 completes type-owned decimal parsing and owned text conversion for every built-in integer. It also makes external value ownership explicit: selected imports are type-only, external functions and constants retain a module subject, namespace aliases are first-class, and constant declarations use UPPER_SNAKE_CASE.

The installed-image boundary now uses manifest v2 to bind the exact compiler file and complete standard-library tree. The running compiler must match that image, and package resolution checks that the selected standard package declares the installation release. Workspace diagnostics are reconciled from one complete post-transition analysis view, so a shared physical source has one URI-global diagnostic state even when several scopes reach it.

The public release notes are ../../releases/v0.24.0.md.

Candidate Identity

The release inputs agree on 0.24.0:

  • development/packaging/VERSION, the sole authored release-version input;
  • the #package version in development/std/index.nct;
  • the archive name and installed manifest derived from VERSION and RELEASE.json;
  • compiler and language-server reporting derived from the validated installed home.

The exact release-content commit is 2e96d14feed60b0e7f33ee3fd9eb5950a6b9efd0 (Prepare v0.24.0 release candidate).

Qualification Contract

The clean release-content commit must pass:

  1. 1. two independent complete locked workspace test runs in distinct external Cargo targets;
  2. warnings-denied all-target Clippy in both external targets;
  3. formatter, documentation generation and reproducibility, repository whitespace, and release metadata checks;
  4. the explicit public-HTTPS dependency-acquisition test;
  5. checks and representative native execution for every public example against an isolated candidate home;
  6. two independent optimized package builds with byte-identical archives and recursively identical installed homes;
  7. fresh extraction checks for version, doctor, help, initialization, locked/offline check and test, deterministic graph, native run, explicit build and execution, and framed LSP analysis;
  8. rejection after either the installed compiler or standard-library content is changed, plus proof that ordinary qualification commands do not mutate the installed home.

Source Qualification

The release-content commit passed two independent complete locked workspace test runs in distinct external Cargo targets. Each reported 1,473 passed, zero failed, and one ignored public-HTTPS test. The ignored Git acquisition test passed separately with public HTTPS enabled. Warnings-denied all-target Clippy passed in both external targets, and both 1.7 GiB temporary target trees were removed after use.

Rust formatting, release-manifest rendering, shell syntax, 342-page documentation generation and reproducibility, and repository whitespace checks passed. Tests that consume the physical standard package now derive its expected release from development/packaging/VERSION; no active compiler test copies the candidate release number.

Artifact Qualification

development/packaging/qualify-local-release.sh built the optimized compiler twice in independent temporary Cargo targets. The compressed archives matched byte for byte, and their extracted .nocter/ homes matched recursively. The retained candidate is:

  • archive: dist/nocter-v0.24.0-arm64-darwin.tar.gz;
  • byte size: 8,177,851;
  • SHA-256: bf0cafd12b4c7cdc4f7ac467a468035d37ce4ff41d4c3636a1ed2cb0bfadcd06;
  • compiler: ARM64 Mach-O reporting release 0.24.0;
  • compiler SHA-256: 49745aa20380d301734c61f4db27ba7b9da1f43f20c9bfb9cb456d5e6819e0d4;
  • standard-library tree SHA-256: ec253598f6a19017b7562dbe551466bf072af3189f48cd554d23ff44de101139;
  • standard-library files: 112 tracked regular files.

Fresh extraction passed version, doctor, help, package initialization, locked/offline check and test, every public single-file and package example check, two byte-identical package graphs, native run, explicit build and direct execution, and framed LSP analysis. The installed home remained recursively unchanged through the smoke matrix. Separate copied homes were rejected after changing either the compiler bytes or std/index.nct.

Separately authorized publication reused the retained archive without rebuilding it, advanced the public download links in a separate commit, created and pushed an annotated v0.24.0 tag, uploaded exactly this archive, and verified the public download byte for byte. Existing published tags and assets must not be replaced.