This roadmap shows priorities and readiness, not promised dates. A feature listed here is not part of the current language or a public release until its documentation says so.
Now
- The current public product is the installed Local Data Application Loop.
- Compiler, runtime, npm installer, artifacts, documentation, and Playground identify one current product.
- Fixed-length mutable
ByteBufferremoves the boxed-byte assembly bottleneck while immutableBytesand the existing native, Python, raw Web, and Web Worker contracts remain compatible. - The installed Local Data Application Loop can scaffold, check, test, serve, package, and run a typed browser application from a complete managed static bundle. Data Lens and Markdown Live exercise bounded UTF-8 file import/export and package-isolated durable state offline.
- Run targeted differential checks when a related implementation changes. Reserve full cross-platform and full differential campaigns for the public-minor RC that owns them.
Next
- Continue dogfooding the installed browser path and repair only concrete blockers reproduced by maintained applications.
- Complete deployable lifecycle, restart, graceful shutdown, and operational guidance around the hardened Bounded HTTP Service Application Loop.
- Keep the Data Lens browser and service products on their single shared checked parsing and transformation core while exercising realistic bounded CSV and JSON requests.
- Keep HTTP/1.1 parsing, request isolation, resource limits, cancellation, failure mapping, structured logs, and graceful shutdown in the generated host. Topaz source does not gain ambient sockets or outbound networking.
- Improve editor integration, debugging, profiling, artifact-size reporting, and performance tools when the maintained service exposes a concrete user decision.
- Prepare the next language authority and rehearse the atomic version transition without changing the landed service contract. Consider language ergonomics only when libraries, diagnostics, or tooling cannot solve a maintained application problem cleanly.
Release boundary
Internal 5.8.x checkpoints accumulate the service product on develop; each
completed patch is recorded in History. Topaz
5.9.0 is the intended next public minor and will publish only after the
complete service product and every user-visible identity can move together
through one accepted candidate.
Later
- Keep browser fetch, outbound networking, remote package publication, router and middleware frameworks, shared server state, databases, TLS termination, WebSocket, and new syntax outside this train.
- Preserve explicit older language modes as compatibility inputs rather than parallel current identities.
Bounded integration evidence
LIT and Lispex integration records remain useful internal compatibility and regression evidence. They do not define this release queue, make LIT a public Topaz backend, or establish whole-language equivalence. Large LIT, N-way, mutation, and differential campaigns run only when their owned semantics change or an applicable release candidate requires them.
Research
- Expand differential and fuzzing tools that find places where code generators misunderstand the language.
- Consider model checking or mechanized proofs only where there is a concrete artifact and a useful way to reproduce the result.
- Keep async syntax, recoverable faults, grapheme APIs, and user-defined templates as research topics until a future language decision accepts them.