Back to news

ZuzuScript 0.6.x released

New releases for Perl, Rust, JS, and Android

New releases of ZuzuScript are available for Perl, Rust, JS, and Android. This release is mostly about bringing implementation behaviour back into line with the language documentation, improving cross-runtime parity, and tightening temporary-file cleanup in the standard library.

Important changes include:

  • The ?: operator now follows its documented semantics across all three main runtimes. a ?: b returns a when a is non-null, and returns b only when a is null. Older implementations accidentally treated it like a value-preserving or, so false, 0, and empty-string values could fall through to the right-hand side. This release is intended to correct the implementations, not to redefine the language.
  • ZPath and ZZPath ?: expressions now use the same definedness check as ZuzuScript itself, so path expressions no longer have separate truthiness behaviour for this operator.
  • Path.tempfile() and Path.tempdir() now attach lifecycle cleanup to the returned Path object in zuzu.pl, zuzu-rust, and zuzu-js. Temporary files are deleted, and temporary directories are recursively deleted, when the object would run __demolish__.
  • Temporary Path cleanup now respects object reachability. A temporary path is not removed while a script still retains a reference to the Path object, including when it is returned from a block, returned from a function, or kept inside a returned collection.
  • Zuzuzoo install and metadata tests now keep their temporary Path objects alive for as long as the underlying files are needed, matching the intended lifecycle model.

zuzu.pl

zuzu-rust

zuzu-js

Android