Repository navigation
v0.12.0
Added
- A pure in-memory compiler API and a compiler component with a WIT interface.
Callers supply source files, WIT dependencies, and macro capabilities explicitly.
GitHub releases include the standalonewavelet-compiler.wasmcomponent. - Compiled browser playgrounds and a dedicated REPL, with worker isolation,
cancellation, timeouts, and recovery after compiler or runtime errors. - A code-led “Learn Wavelet in Y minutes” tour and rewritten documentation
describing the current language, component interfaces, and embedding APIs. - Pinned Code Maat history analysis with revision, churn, and coupling reports,
available through the local check suite and as downloadable CI artifacts.
Changed
- Native builds, the native REPL, and the compiler component share the compiler
pipeline and snippet wrapper. Documentation generation verifies every example
through compiled execution against the independent interpreter oracle. - Macro preparation returns explicitly supplied or generated component artifacts
for host instantiation, then resumes with synchronous macro capabilities. - REPL value declarations execute during submission and report initializer errors
immediately.
Fixed
- Compiled string concatenation handles characters and sequence payloads.
String length counts Unicode scalars, matching the interpreter. - Compiled
upperandlowermatch the interpreter's Unicode casing, including
multi-character mappings and context-sensitive Greek sigma. - Generated WIT escapes reserved words in public identifiers so components keep
the names declared in Wavelet. - Tuple length and statically typed tuple indexing agree with the interpreter.
- Statically resolved builtin callbacks work in collection operations while
preserving local shadowing. - Form printing preserves uppercase flag names through reading and printing.
- Browser resource bindings avoid a JavaScript intrinsic-name collision for
the built-in set resource.
Removed
- Placeholder
Deriveimplementations that returned constant answers. Unsupported
derivation now reports an error; operations can be defined explicitly.
What's Changed
- docs: correct stale phase status in check.rs header by @logaan in #33
- Reorganise the work plan vault into eight ordered goals by @logaan in #34
- docs: stop pointing CLAUDE.md at the deleted dev-notes/design.md by @logaan in #35
- test(differential): F4 execution harness — docs examples, interpreter vs compiled by @logaan in #36
- refactor(emit): split the 14.6k-line emit.rs into a module tree by @logaan in #39
- refactor(emit): split Emitter::builtin into per-group helpers by @logaan in #38
- fix: run extensionless shebang scripts, not just .wlt files by @logaan in #37
- Add fixed-arity tuple constructors tuple0..tuple16; values callee passes (decision 0.1) by @logaan in #41
- to-string: float and char arms in the wasm backend (0.2) by @logaan in #40
Full Changelog: v0.10.0...v0.12.0