New releases for Perl, Rust, JS, Android, and syntax highlighting packages
New releases of ZuzuScript are available for Perl, Rust, JS, and Android, alongside fresh browser highlighter, VS Code, and Pulsar syntax packages. This release is mostly about filling out the logical operator family, improving cross-runtime parity, and making the newer language operators available inside ZZPath expressions too.
Major new features include:
switchcase values can now override the switch comparator with a comparison operator prefix, such ascase ~ /^Rob/orcase eqi "Bob". The Rust implementation also optimizes literal-stringeq/eqiswitch dispatch tables and literal-integer numeric equality dispatch tables.- New logical operators:
nor/⊽,xnor/↔,onlyif/⊨, andbutnot/⊭. - New value-preserving logical operators:
and?/⋀?,or?/⋁?,xor?/⊻?,xnor?/↔?,nand?/⊼?,nor?/⊽?,onlyif?/⊨?, andbutnot?/⊭?. std/path/zzZZPath expressions now recognise and evaluate the newer language operators for bit shifts, divisibility, logical combinations, and value-preserving logical combinations.- Dynamic method calls have better shared conformance coverage, including
cases where the method expression evaluates to a method name or a Method
value, named arguments, and
std/eval. - Collection APIs are more consistent across runtimes. The release includes
fixes for
Array.join(), negative indexes inget()/set()/set_weak(),sample()/shuffle(), Bag removal, PairList enumeration, weak collection aliases, and severalis_empty()/contains()parity gaps. - The JS browser runtime now supports
ZuzuBrowser.addModule(moduleName, url), allowing whitelisted remote ZuzuScript modules to be fetched, parsed, imported, and cached on first use. - The JS implementation now matches the language-defined precedence for
logical operators, and the JS lexer accepts the
⊤and⊥Boolean literals. - The Rust
--lintmode now warns about chained uses of the less intuitivenand,nor,xnor?,nand?, andnor?operators. - The browser highlighter, VS Code extension, and Pulsar package have been repackaged for the 0.5.0 release cycle.