0.707
Hello Luaunators! This release comes with an API change for users of Luau.Require and some nice improvements for the bytecode compiler and native codegen!
Require Library
For users of Luau.Require's RequireNavigator: getRequirerIdentifier and reset have been merged into a single resetToRequirer API. This reflects existing usage, where the identifier returned by getRequirerIdentifier was always immediately passed to reset. The API surface is simpler, and this eliminates the artificial bottleneck of communicating requirer state via a std::string identifier.
Runtime
- Inlining at bytecode compile time now retains information about builtin symbols, so
FASTCALLs can be emitted when appropriate, such as in:
local function tryWithZero(f, x)
return f(x, 0)
end
return function (n)
-- If we inline `tryWithZero`, we'll be able to emit a
-- FASTCALL opcode when compiling the now inlined
-- `math.max(n, 0)`
return tryWithZero(math.max, n)
end- NCG: Fixed a crash resulting from partially eliminated dead store instructions: we would incidentally mark a floating point value as a potential pointer into the heap, which could crash during garbage collection.
- NCG: Add vectorized instruction support for
min,max,floor,ceil, andabs - NCG: Fixed a crash when constant folding a buffer access using an offset outside the representable range of integers.
- Add support for constant folding vector component access at bytecode compile time.
Co-authored-by: Andy Friesen afriesen@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