Skip to content

v0.12.0

Choose a tag to compare

@github-actions github-actions released this 11 Nov 20:07
· 36 commits to main since this release

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 standalone wavelet-compiler.wasm component.
  • 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 upper and lower match 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 Derive implementations 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