Releases: luau-lang/luau
Releases · luau-lang/luau
0.552
Analysis Changes
- Reduce the stack utilization of type checking.
- Improve the error message that's reported when a delimiting comma is missing from a table literal. eg
local t = {
first = 1
second = 2
}
0.551
Analysis changes
- Fixed issue with all dependent modules not being invalidated when using
Frontend::markDirty
#719 - Improved
Failed to unify type packs
error message to be reported asType pack 'X' could not be converted into 'Y'
- Add named parameters to
math
library functions #722 - All thrown exceptions by Luau analysis are now derived from
Luau::InternalCompilerError
- When a call site has fewer arguments than required, error reports the location of the function name instead of the argument to the function
- Fixed documentation symbols not added to exported types in declaration files if they are referenced in a declared global
Runtime changes
- Removed a check in fast call dispatch that reduces executed instruction count by 1% in benchmarks
- Additional fixes to reported error location of OOM errors in VM
- Improved
math.sqrt
,math.floor
andmath.ceil
performance on additional compilers and platforms (1-2% geomean improvement in benchmarks, including 8-9% on 'math-cordic')
Community contributions
- Use overloaded documentation symbol for class methods/table props by @JohnnyMorganz in #724
0.550
Analysis changes
- Improve type checking performance for complex overloaded functions
Runtime changes
- Fix rare cases of incorrect stack traces for out of memory errors at runtime
Community contributions
- Support
["prop"]
syntax on class definitions in definition files by @JohnnyMorganz in #704
0.549
Analysis changes
- Type errors that mention function types no longer have redundant parenthesis around return type
Runtime changes
- Reoptimized math.min/max/bit32 builtins assuming at least 2 arguments are used (1-2% lift on some benchmarks)
- Luau REPL now supports --compile=remarks which displays the source code with optimization remarks embedded as comments
- Builtin calls are slightly faster when called with 1-2 arguments (~1% improvement in some benchmarks)
Community contributions
- Fix segfault in
loadDefinition
for unit tests by @JohnnyMorganz in #705
0.548
Analysis changes
- Fix rare type checking bugs with invalid generic types escaping the module scope
- Fix type checking of variadic type packs in certain cases
- Implement type normalization, which resolves a large set of various issues with unions/intersections in type checker
- Improve parse errors for trailing commas in function calls and type lists
Runtime changes
- Improve performance of
lua_getinfo
(debug.info
,debug.traceback
and profiling overhead are now 20% faster/smaller) - Improve performance of polymorphic comparisons (1-2% lift on some benchmarks)
- Improve performance of closure creation (1-2% lift on some benchmarks)
- Improve string comparison performance (4% lift on string sorting)
- Reduce profiling skew when using
--profile
with very high frequencies
Community contributions
None this week; PRs are always welcome!
0.547
Analysis changes
- Type aliases can no longer override primitive types; attempts to do that will result in a type error
- Fix misleading type error messages for mismatches in expression list length during assignment
- Fix incorrect type name display in certain cases
Runtime changes
setmetatable
/getmetatable
are now ~2x fastertools/perfstat.py
can be used to display statistics about profiles captured via--profile
switch
Community contributions
None this week; PRs are always welcome!
0.546
0.545
Analysis changes
- Improve type error messages for argument count mismatch in certain cases
- Fix type checking variadic returns when the type is incompatible which type checked in certain cases
Runtime changes
- Reduce size of upvalue objects by 8 bytes on 64-bit platforms
- Reduce I$ footprint of interpreter by 1.5 KB by removing support for bytecode v2
- Reduce GC pause during atomic stage for programs with a lot of threads
Community contributions
- Add lua_rawsetfield by @petrihakkinen in #671
0.544
Analysis changes
- Remove type definitions of
utf8.nfcnormalize
/nfdnormalize
/graphemes
that aren't supported by standalone Luau library
Runtime changes
- Add
lua_costatus
to retrieve extended thread status (similar tocoroutine.status
) - Improve GC sweeping performance (2-10% improvement on allocation-heavy benchmarks)
Community contributions
None this week; PRs are always welcome!
0.543
Analysis changes
- Improve type checking stability
- Improve ComparisonPrecedence lint suggestions for three-way comparisons (X < Y < Z)
- Improve location information for errors when parsing invalid type annotations
Runtime changes
- Compiler can no longer be configured to generate bytecode version 2; runtime support for version 2 will be removed in a future release
- Improve performance of comparisons against numeric constants on AArch64
Community contributions
- Fix overloaded metamethod in class definitions by @JohnnyMorganz in #653