Topaz v5 began with a compact expression-oriented language, explicit recoverable errors through Result, and Unicode identifiers as a normal part of source code. This page records the language and tool changes that matter to users.
Evolution at a glance
| Version | Language change | Toolchain change |
|---|---|---|
| v5.0 | Established the expression-oriented, Result-first, Unicode-friendly baseline. | Fixed the overall language direction and canonical example style. |
| v5.1 | Added while, break, and continue, and clarified layout, operators, patterns, concurrency, and templates. | Strengthened the interpreter-led grammar and behavior checks. |
| v5.2 | Added the locked import/export module grammar and visibility rules. | Aligned the language, compiler, runtime, and distribution on the first public v5.2 line. |
| v5.3 | Kept the v5.2 module foundation while expanding the library needed by real programs. | Binaries, the playground, docs, and npm package advanced rapidly and were published at slightly different times. This was release timing, not a split in language meaning. |
| v5.4 | Preserved the established v5 syntax while tightening practical tool boundaries. | Standardized platform binaries and installation, then added experimental Python generation in v5.4.1. |
| v5.5 | Continued compatible standard-library and runtime growth. | Promoted Python to a supported backend and expanded interpreter/Rust/Python comparison coverage. |
| v5.6 | Consolidates current generics, nominal data, record update, patterns, pipelines, and the broader standard library/runtime contract. | Releases the interpreter, Rust, Python, WASM playground, and package tools on one v5.6 line. |
| v5.6.1 | Keeps the pinned v5.6 language semantics unchanged. | Moves native/web Cargo work into disposable storage, prevents Python cache growth, adds managed artifact identities, and aligns licenses and packages. |
| v5.6.2 | Keeps language semantics and toolchain behavior unchanged. | Refreshes documentation and npm package wording; no functional changes. |
| v5.6.3 | Keeps language semantics and toolchain behavior unchanged. | Removes the private repository address from the npm listing; metadata only. |
| v5.6.4 | Keeps the canonical v5.6 grammar and semantics unchanged. | Adds the installed multi-module Application Loop foundation, offline native/Python package builds, and machine-readable agent-pack checking. |
| v5.6.5 | Keeps the canonical v5.6 grammar and semantics unchanged. | Completes the installed Application Loop, fmt --check, localized guides, direct npm publication, and bounded field validation. |
| v5.6.6 | Keeps the canonical v5.6 grammar and semantics unchanged. | Adds fixed-length mutable ByteBuffer and repairs Web allocation and return-memory ownership for large binary products. |
| v5.6.7 | Keeps language mode topaz-5.6 and its canonical grammar and semantics unchanged. | Adds the checked Web Application lifecycle, safe browser host, web-app scaffold, loopback development command, and complete managed static bundle. |
| v5.7.0 | Inherits the complete v5.6 grammar and semantics as the distinct current topaz-5.7 mode. | Unifies compiler, runtime, packages, artifacts, npm, WASM, Playground, and docs on 5.7; ships Data Lens and Markdown Live through the installed offline Web Application Loop. |
Current baseline
This manual describes the current v5.7 language line and Topaz 5.7.0. Explicit v5.6 remains a supported compatibility input. See Toolchain Status for installation, compatibility, and target information, or Migrating from pre-v5 for syntax changes from older material.
Internal LIT integration evidence
Internal integration evidence covers one canonical Lispex-in-Topaz source across the interpreter, generated Rust, generated Python, and Web routes on a bounded four-host check surface. LIT supports 84 of 205 primitive capability rows and six of 18 guest-calling rows; unsupported rows fail loudly.
This evidence changes neither the v5.7 language nor the public product boundary. The four routes are host variants of one LIT source, not independent implementations, and no source-independence or whole-language equivalence claim follows. LIT is not included as a public backend.