02-02-2026
1.4.0
- Completed phase-out of function-level protected execution.
- For software embedding Lus and only making use of the front-facing C APIs like
lua_pcall, this should not impact you as the functions have been retrofit with compatibility layers interfacing with the new catch system.
- For software embedding Lus and only making use of the front-facing C APIs like
- Added
--standaloneto generate standalone binaries. - Added local groups for grouping stack-allocated variables.
- Added
vectortype and library for buffers. - Added slices for strings, tables, and vectors.
- Added
table.clone(t, deep?)to create copies of tables. - Added
catch[handler] exprsyntax to allow expression-levelxpcall-like functionality. fromdeconstruction can now be done inif/whileassignments.- Refactored actions workflow.
- Various runtime optimizations:
- Constant-time O(1) string hashing using sparse ARX algorithm.
- Aligned string comparison for faster ordering.
- Alias-aware table loops for improved compiler optimization.
- O(1) catch handler lookup via
activeCatchpointer. - Cold path extraction for trap handling and catch error recovery.
- Arena-aware allocations where performance can be reliably improved.
- Moved slice logic out of the VM and into its own
luaV_slicefunction.
- Fixed our Windows builder, meaning Windows support has finally returned.
- Fixed race condition in
worker.receivethat could cause lost wakeups. - Fixed attribute usage in if-assignments and while-assignments.
- Fixed deeply nested JSON encoding/decoding crashing.