Skip to content

Releases: luau-lang/luau

0.552

04 Nov 17:44
c33700e
Compare
Choose a tag to compare

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

28 Oct 10:56
a6b5051
Compare
Choose a tag to compare

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 as Type 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 and math.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

21 Oct 18:11
5432486
Compare
Choose a tag to compare

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

14 Oct 20:10
76070f8
Compare
Choose a tag to compare

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

0.548

07 Oct 01:51
Compare
Choose a tag to compare

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

29 Sep 22:55
937ef2e
Compare
Choose a tag to compare

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 faster
  • tools/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

23 Sep 19:44
59fd9de
Compare
Choose a tag to compare

Runtime changes

  • Add lua_rawiter for faster table iteration from C (~2x faster than lua_next, results in the same iteration order if the table isn't modified during traversal)

Community contributions

0.545

15 Sep 23:46
3d74a8f
Compare
Choose a tag to compare

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

0.544

08 Sep 23:45
ce2c3b3
Compare
Choose a tag to compare

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 to coroutine.status)
  • Improve GC sweeping performance (2-10% improvement on allocation-heavy benchmarks)

Community contributions

None this week; PRs are always welcome!

0.543

01 Sep 23:22
ae35ada
Compare
Choose a tag to compare

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