Repository navigation
Immutable
release. Only release title and notes can be modified.
A new release for Luau is ready and brings in the while local statement form support and a tag guided runtime native recompilation, among other smaller fixes and improvements!
while local allows you to create a binding right inside the while statement condition:
while local x = fetch() do
...
endAnalysis
- Fixed a case of equality constraint producing unnecessary type cycles
- Added auto-complete suggestions for
localandconstafterif,elseifandwhile - Globals that are read and never assigned no longer leak a blocked type
- Globals used inside type functions no longer have effect on type inference outside them and report a typechecking error
- Report type error when iterating over type containing tables that is not itself a subtype of
tableby @5-erin in #3090
Runtime
- Added hash salting for interning string table when
lua_setpointerencodekeyis called to avoid crafted string sets from slowing down string operations - Fixed a crash that could happen in
luau_loadif embedder exposes GC controls to Luau code - Functions calling
requiredirectly are no longer considered for runtime inlining because that can change require path resolution
Native Code Generation
- Runtime recompilation now gathers information on tags and userdata types to specialize the code in arithmetic, field access and namecalls
- Inlining of memory operands into instructions on x64 is now performed only if there are no conflicting writes
Classes (experimental)
Ongoing work on Classes RFC prototype:
- Fixed a crash when class was extending a different class with the same name, it now correctly refers to the outer class instead of the one being defined
- An error is now reported when a class inherits a constructor instead of defining its own
(required flags: DebugLuauUserDefinedClasses=true,DebugLuauUserDefinedClassesRuntime=true)
Full Changelog: 0.745...0.746