Skip to content

0.746

Latest

Choose a tag to compare

@github-actions github-actions released this 07 Nov 17:20
Immutable release. Only release title and notes can be modified.
12a6ba7

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
    ...
end

Analysis

  • Fixed a case of equality constraint producing unnecessary type cycles
  • Added auto-complete suggestions for local and const after if, elseif and while
  • 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 table by @5-erin in #3090

Runtime

  • Added hash salting for interning string table when lua_setpointerencodekey is called to avoid crafted string sets from slowing down string operations
  • Fixed a crash that could happen in luau_load if embedder exposes GC controls to Luau code
  • Functions calling require directly 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