Skip to content

0.706

Choose a tag to compare

@github-actions github-actions released this 23 Jan 18:40
Immutable release. Only release title and notes can be modified.
416fc1a

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 ToStringResult to support decomposition #2163
  • Expose luaL_traceback from 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