NovaLang0.2 alpha

NovaLang — Release Program

Release target

Recommended first public milestone: 0.2.0 public alpha, explicitly unstable. Do not call the current system production-ready or 1.0.

Quality gates

R0 — product contract and freeze

Goal: decide what NovaLang is before scaling documentation and branding.

  • approve philosophy, audience and stable/experimental feature matrix;
  • decide product name, executable, extension and repository identity;
  • write syntax RFC and compatibility/edition policy;
  • define supported operating systems and release tier;
  • define threat model and policy for untrusted code.

Exit: no unresolved naming or core-syntax decision.

R1 — correctness foundation

  • fix interpreter expression statements;
  • fix GC temporary rooting;
  • fix optimizer boolean folding;
  • make cache depend on the complete module graph;
  • implement differential interpreter/VM tests;
  • add regression and property tests for every fixed invariant;
  • reject unsupported constructs at the earliest reliable stage with actionable diagnostics;
  • publish a generated feature matrix.

Exit: zero known P0 correctness bugs; parity corpus green.

R2 — language and module stabilization

  • define normative lexical, grammar, type and runtime behavior;
  • implement real short-circuit semantics;
  • replace compile-time range expansion with range iteration;
  • introduce stable definition/module identities and visibility enforcement;
  • specify Unicode string length/equality/value semantics;
  • add source maps and stack traces;
  • implement approved edition migration and canonical formatter output.

Exit: language conformance suite and migration tests green.

R3 — security and package hardening

  • checksums in archive, index and lockfile;
  • immutable package versions;
  • transactional install/cache/registry writes with rollback;
  • resource limits and isolated execution profile;
  • symlink-safe bounded filesystem traversal;
  • cargo-deny/audit, SBOM and dependency policy;
  • security response policy and vulnerability reporting.

Exit: threat-model controls tested; dependency audits green.

R4 — developer experience

  • coherent CLI input model, structured exits and JSON diagnostics;
  • shell completions and generated command reference;
  • LSP debounce/cancellation/version guards and incremental synchronization;
  • go-to-definition, references, rename, signature help, symbols and code actions;
  • grammar/completion generated from one language metadata source;
  • clean, bundled and tested VS Code artifact;
  • binary installation, update and uninstall flow.

Exit: installation and editor smoke tests pass on Windows, Linux and macOS.

R5 — private release engineering

  • proprietary license and closed-source distribution contract;
  • support, security, release checklist and private reporting policy;
  • CI matrix across three operating systems, stable Rust and MSRV;
  • website, documentation, extension and dependency gates;
  • tag-driven release archives with checksums, VSIX, SBOM and artifact smoke tests;
  • HTTPS distribution independent from repository authentication;
  • safe install, update, uninstall and rollback rehearsal.

Exit: private release checklist signed off; no open P0/P1 release blocker.

R6 — post-alpha hardening

  • coverage thresholds and long-running stress tests;
  • fuzz targets for lexer, parser, bytecode and package archives;
  • tracked compiler/runtime performance budgets and regression alerts;
  • native artifact signing and provenance attestations;
  • sandboxed playground after resource isolation is independently reviewed.

Exit: security and performance budgets remain green during the beta window.

Priority matrix

WorkImpactComplexityRiskDependencies
GC rootingcriticalmediumhighnone
Interpreter statementscriticallowlownone
Optimizer type correctnesscriticallowmediumnone
Module-aware cachecriticalmediummediummodule graph
Feature matrix/early rejectionhighmediumlowR0
Syntax/edition RFChighhighhighproduct decision
HIR/module identitieshighvery highhighspec
Package integrity/atomicityhighhighmediumformat design
LSP responsiveness/featureshighhighmediumstable frontend
Installers/releaseshighhighmediumsupported platforms
Complete docs/sitehighvery highlowR0–R4 contract
Playgroundmediumhighcriticalsandbox/resource limits

Required decisions

  1. Keep the public name NovaLang, or run a naming/availability phase before branding and repository creation?
  2. Preserve current syntax for the first alpha, or approve an edition RFC around fun, val/var and removal of redundant spellings?
  3. Confirm the first target as 0.2.0 public alpha, rather than beta or 1.0.
  4. Provide/authorize the GitHub owner and private repository name when the GitHub connection is available.