0.706
Immutable
release. Only release title and notes can be modified.
Hey everyone! We've been hard at work fixing bugs and improving native codegen. Enjoy!
Analysis
-
Rename the class tag to extern in type functions
-
Fix #2204
-
Rework type unification in terms of subtyping.
This uses the new solver's understanding of subtyping to drive unification for
some internal callsites. This is a broad change that should result in more
consistent inference. For example:local function sum<T>(x: T, y: T, z: (T, T) -> T) return z(x, y) end local function sumrec(f: typeof(sum)) return sum(2, 3, function<X>(g: X, h: X): add<X, X> return g + h end) end -- Prior we would claim that `b` is of type `add<X, X> | number`: not good! -- We now correctly claim that it is of type `number` thanks to bug fixes -- made to subtyping that did not make their way to the unifier. local b = sumrec(sum)
Native Codegen
- Improve vector handling in binary operations
- Fix missed optimization causing an assertion failure
- Propagate loads of STORE_VECTOR components produced by UINT_TO_FLOAT
- Constant-fold new operand of CHECK_BUFFER_LEN
- For register load-store propagation, use the second operand only for LOAD_FLOAT
- TValue store cannot be removed when it's partially over-written
- Rework equality and ordering comparisons to fix issues and be more type aware
- Migrate Luau NCG IrInst operands representation to SmallVector
Runtime
- Fix 64-bit countrz to build on 32 bit Windows.
- Remap Luau local debug and type information after performing jump expansion
- Add support for building Luau as a shared library
- Luau should be able to make fastcalls even if library name is obscured by a local polyfill
OSS Contributions
- Track type spans in
ToStringResultto support decomposition #2163 - Expose
luaL_tracebackfrom Lua C API #2167
Internal Contributors
Co-authored-by: Ariel Weiss arielweiss@roblox.com
Co-authored-by: Hunter Goldstein hgoldstein@roblox.com
Co-authored-by: Ilya Rezvov irezvov@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.705...0.706