Toka v0.9.8-07
This release is a 1.0-freeze checkpoint focused on PAL safety, syntax conformance, and toolchain stability.
Highlights
- Froze the PAL core model as Path-Anchored Ledger.
- Added call-site implicit borrow checking, so payload arguments are now checked as simultaneous temporary borrows.
- Rejected unsafe call aliases such as mutable/mutable, mutable/read, and
cede/read overlaps. - Split PAL mutation operation classes so ordinary payload writes, exclusive mutations, and invalidating operations are tracked more precisely.
- Improved local CFG state merging for
if,guard,match, loops,break,continue, and labeled control flow. - Enforced explicit return dependency declarations for borrowed results such as
-> str <- source. - Locked execution-boundary capture safety for escaping closures and thread-like boundaries.
- Froze additional syntax rules for dyn traits, where bounds, handle hash placement, path visibility, kebab path boundaries, public unsafe API naming, match pattern safety, and common mistake diagnostics.
- Added optional compiler audit instrumentation for assignment and handle-surface classification.
- Hardened TKI replay/cache behavior and test-lib object reuse.
- Fixed tokafmt to comply with explicit PAL return dependencies.
- Kept optional stats headers buildable in the Emscripten playground path.
- Expanded pass/fail/warn coverage, including warning verification and several syntax conformance matrices.
Breaking / Tightened Diagnostics
This release intentionally tightens several diagnostics as part of the 1.0 freeze work.
Code returning borrowed data from parameters or fields may now need explicit dependency annotations:
fn view(source: str) -> str <- source
Function calls are also checked as simultaneous temporary borrow groups. For example, passing the same payload as both mutable and readable/mutable arguments is rejected, while repeated read-only payload arguments remain valid.
Current Limits
dyn @Traitremains single-facet for now.- Associated type binding on
dyn @Traitis not part of this release. - Async/thread semantics remain conservative; deeper async and concurrency consumers are post-freeze work.
- Raw pointer alias proof remains outside the safe automatic PAL subset.
Verification
- Full local rebuild completed successfully with:
./rebuild.sh- The rebuild produced
tokac,toka,tokafmt,tokalsp, andforge. - GitHub Actions should validate the full platform matrix for this overwritten
v0.9.8-07tag.