Skip to content

0.710

Choose a tag to compare

@github-actions github-actions released this 27 Feb 17:38
Immutable release. Only release title and notes can be modified.
9645801

Hello! Another week with updates to type analysis and fixes in compiler and native code generation.

Breaking C API change: the useratom callback function now has an extra argument for lua_State pointer. If you are using string atom identifiers, add an argument in your handler.

Analysis

  • Table types are treated as shape types when normalizing against an extern type. This allows intersections against extern types to provide information on additional properties not declared in an extern type, but present for that particular value:
function take(thing: Instance & { Brushes: Instance })
    print(thing)
    print(thing.Brushes.Name)
end
  • Fixed another crash which could happen when auto-complete visits a table with write-only properties

Require library

  • During path resolution, we now reset to the requirer's context before to_alias_override is called, enabling embedders to implement context-sensitive alias overrides

Compiler

  • In a fast-call fallback sequence, GETGLOBAL/GETUPVAL will never use extra registers (Fixes #2248)

Native Code Generation

  • A counter system has been added which is used by native execution to report regular/fallback block execution and VM side exit statistics. When using --codegen together with --counters in Luau REPL, callgrind.out file is written containing the counter data to view in callgrind/cachegrind tools
  • Fixed an issue where setfenv change could have been ignored, executing fast-paths for longer than is allowed
  • Stability improvements

Community Contributions

  • Pass a state parameter to useratom by @jackdotink in #2256

Co-authored-by: Andy Friesen afriesen@roblox.com
Co-authored-by: Ariel Weiss arielweiss@roblox.com
Co-authored-by: Sora Kanosue skanosue@roblox.com
Co-authored-by: Varun Saini vsaini@roblox.com
Co-authored-by: Vighnesh Vijay vvijay@roblox.com
Co-authored-by: Vyacheslav Egorov vegorov@roblox.com

Full Changelog: 0.709...0.710