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. |
Current baseline
This manual describes the current v5.6 release. See Toolchain Status for installation, compatibility, and target information, or Migrating from pre-v5 for syntax changes from older material.