You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 `FASTCALL`s can be emitted when appropriate, such as
in:
```luau
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`, and `abs`
* 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>
0 commit comments