Skip to content

v0.9.8-06

Choose a tag to compare

@zhyi-dp zhyi-dp released this 26 Jun 15:26

Toka v0.9.8-06

This release is a broad stabilization and tooling release since v0.9.8-05, focused on the build system, TKI interface reuse, parameter/resource semantics, trait syntax, cross-platform packaging, and public documentation.

Highlights

  • Introduced and stabilized the JSON dependency manifest protocol used by tokac --dump-dependencies.
  • Added the incremental build driver and hardened toka build integration.
  • Fixed several incremental-build ownership, cache fallback, path identity, and stale-interface issues.
  • Added validated .tki metadata handling, including compiler/interface version checks, target checks, source hash checks, and source fallback.
  • Added archive-backed cached library testing and expanded cached-lib coverage.
  • Stabilized TKI replay for core/string, generic containers, morphology, effects, closures, postfix operators, and cached module identity.
  • Added pass-suite timing and cached-lib validation to the test workflow.
  • Tightened parameter morphology rules, including rejection of type-side reference parameters and clearer binding-side morphology.
  • Enforced cede parameter consumption contracts.
  • Added where impl constraints, trait bound set syntax, required @ markers on trait declarations, and associated type / per type syntax.
  • Added the standard Iterator trait.
  • Refactored and hardened member access lowering, including morphic member identity access and stricter prefix checks.
  • Added WASI/WebAssembly cross-compilation support and playground self-tests.
  • Fixed release packaging/linking issues on macOS x64, Windows, and zstd discovery through CMake.
  • Refreshed README, syntax documentation, website content, install guidance, and project positioning.

Build System and TKI

This release includes a major step forward for Toka's build infrastructure:

  • JSON dependency manifests are now versioned and machine-readable.
  • .tki interface files are validated using explicit compiler, format, target, and source metadata.
  • The resolver can fall back from stale or invalid interfaces to source files.
  • Interface path behavior, dotted output directories, multi-root output conflicts, and source-less interface use cases are covered by tests.
  • Cached library mode is now part of the pass-suite workflow.
  • Cached-lib coverage now reaches 53 cached objects while preserving dependency-closed archive safety.

Language and Semantics

This release tightens several core language rules:

  • Function parameters use binding-side morphology more consistently.
  • Type-side borrow/reference parameter forms are rejected.
  • cede in a function signature is now treated as an executable contract: the value must actually be consumed or forwarded.
  • Trait declarations now require the @Trait form.
  • Trait bound sets use the canonical @{TraitA, TraitB} form.
  • where: constraints are supported for impl prerequisites.
  • Associated types and per type associated types are introduced.
  • Standard iterator support is added.

Compiler and Runtime Fixes

  • Member access codegen was refactored and hardened.
  • Pointer lowering and captured-resource handling were stabilized.
  • Nonblocking socket ABI handling was fixed for variadic fcntl.
  • Windows LLVM DLL linking and macOS x64 release linker setup were fixed.
  • CMake now finds zstd more robustly across Homebrew layouts.

WebAssembly, Playground, and IDE

  • Added WASI 32-bit cross-compilation support.
  • Added playground runtime fixes, stdin/stdout handling, compiler-rt math builtin support, and self-tests.
  • Improved VSCode extension packaging and LSP path resolution.

Documentation

  • Rewrote and refreshed the README and Chinese README.
  • Added an English syntax guide and upgraded the Chinese syntax guide for public use.
  • Refreshed website introduction, installation, CLI/tooling, and project-structure pages.
  • Clarified Toka's design positioning around explicit resource semantics, safety, performance, and simplicity.
  • Updated citation/version metadata for 0.9.8-06.

Validation

The final tagged commit passes the full local validation suite:

  • PASS: 287 / 287
  • ODR path and interface behavior tests passed
  • TKI cache validation tests passed
  • Incremental build tests passed
  • Cached-lib path validated with 53 cached objects