Programming Language

Nocter

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

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

v0.35.0 Release Preparation

Status: published and externally audited (2026-09-05). The qualified candidate below was published without rebuilding. Public evidence is frozen in the release audit.

Release Boundary

v0.35.0 adds immutable static data as a reusable compiler product and uses it to provide pinned Unicode 17.0.0 character properties, Unicode whitespace views, full default casing, and boundary-safe owned String suffix mutation. The compiler carries one evaluated static identity through checked semantics, executable selection, MIR, machine layout, and read-only Mach-O data. Unicode ranges and mappings remain generated standard-library data rather than compiler behavior.

The milestone and Phase 0 through Phase 6 reviews define the closed implementation. Public release notes are ../../releases/v0.35.0.md. Root download links and the public release index identify v0.35.0.

Candidate Identity

The release inputs agree on 0.35.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.

RELEASE.json is the machine authority for version-independent license, host, target, and archive metadata. Release qualification verifies that its license agrees with the shipped legal files and all Cargo workspace packages before either package build begins.

The qualified release-content commit is 97147821a0b8ae78f525768bf705074e75fd0254. Documentation-only qualification evidence recorded after this commit is not an artifact input.

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, no-default-features checking, Rust documentation, generated website reproduction, repository whitespace, and repository-metadata validation;
  4. Unicode manifest mutation testing and exact generated-table reproduction without network access;
  5. the explicit public-HTTPS dependency-acquisition test;
  6. checks and exact native process contracts for every public example against an isolated candidate home;
  7. two independent optimized package builds with byte-identical archives and recursively identical installed homes;
  8. fresh extraction checks for version, doctor, help, initialization, locked/offline check and test, deterministic graph, native run and build, direct execution, and framed LSP analysis of public contracts, implementation sources, generated static tables, and casing bodies;
  9. proof that unreachable static data is absent from a representative native image and that readonly static bytes, Unicode behavior, UTF-8 validity, and recoverable allocation atomicity retain their reviewed contracts;
  10. rejection after either the installed compiler or standard-library content is changed, plus proof that ordinary qualification commands do not mutate the installed home.

Qualification Evidence

The exact candidate passed two independent complete compiler gates in distinct external Cargo targets. Each gate included repository metadata, Unicode input mutation and generated-table reproduction, formatting, warnings-denied all-target Clippy, all enabled locked workspace tests, no-default-features checking, and warnings-denied Rust documentation. The ignored public-HTTPS Git acquisition test also passed explicitly without an external Git executable.

Two independent optimized builds produced byte-identical archives and recursively identical homes. Fresh extraction passed safe-layout and ARM64 checks, version, doctor, help, initialization, locked/offline check and test, every public example, deterministic graphs, exact native process contracts, native run and build, direct execution, framed LSP analysis, installed-home immutability, and compiler and standard-library tamper rejection. Static reachability, readonly layout, Unicode behavior, UTF-8 validity, and recoverable allocation atomicity passed their compiler and native test authorities. The final review found no open release-blocking issue.

The retained candidate is:

  • archive: dist/nocter-v0.35.0-arm64-darwin.tar.gz;
  • size: 8,484,621 bytes;
  • archive SHA-256: 62b30603177fc05ed9e2e50d6051ec59eeae5fbf634c05cea9467661f3dd820e;
  • compiler SHA-256: 9883a98e26ddf4ce2b92bd748107eb73823ba9109cbd3682e76c3d4c2de6fa9c;
  • standard-library tree SHA-256: 0e89cdd1a706f5ef583c297a52e3c8f572ba75adfd11523735459e67ad905052;
  • standard-library regular files: 162.

Publication Boundary

Publication reused the retained archive without rebuilding, created one annotated v0.35.0 tag, uploaded exactly one asset, and verified the public download byte for byte. The release, tag, and asset are immutable by project policy; corrections require a new version.