Skip to content

Releases: luau-lang/luau

0.643

13 Sep 18:54
b765d7b
Compare
Choose a tag to compare

What's Changed

  • keyof - fix LUAU_ASSERT when there's only one key entry by @karl-police in #1388
  • Add default "out" folder for CMake Project Visual Studio by @karl-police in #1394
  • Fix crash with the index type function, where it would stack overflow due to not waiting for a pending-expansion by @karl-police in #1407

New Solver

  • We now unconditionally generalize functions with explicit generics
  • Bugfixes for how we run builtin tests

VM

  • Fixed running Luau conformance tests in LUA_VECTOR_SIZE == 4 configuration

New Contributors

Full Changelog: 0.642...0.643


Internal Contributors:

Co-authored-by: Hunter Goldstein [email protected]
Co-authored-by: James McNellis [email protected]
Co-authored-by: Vighnesh Vijay [email protected]
Co-authored-by: Vyacheslav Egorov [email protected]

0.642

06 Sep 20:45
d9536ce
Compare
Choose a tag to compare

What's Changed

New Solver

  • The type functions keyof and index now also walk the inheritance chain when they are used on class types like Roblox instances.

Full Changelog: 0.641...0.642

0.641

04 Sep 19:14
b23d434
Compare
Choose a tag to compare

What's new

  • Light update this week, mostly fast flag cleanups.

New Solver

  • Rename flag to enable new solver from DebugLuauDeferredConstraintResolution to LuauSolverV2
  • Added support for magic functions for the new type checker (as opposed to the type inference component)
  • Improved handling of string.format with magic function improvements
  • Cleaning up some of the reported errors by the new type checker
  • Minor refactoring of TypeChecker2.cpp that happens to make the diff very hard to read.

Internal Contributors

Co-authored-by: Aaron Weiss [email protected]
Co-authored-by: Andy Friesen [email protected]
Co-authored-by: Vighnesh Vijay [email protected]
Co-authored-by: Vyacheslav Egorov [email protected]

0.640

23 Aug 16:59
d518d14
Compare
Choose a tag to compare

What's Changed

  • Fixed many of the false positive errors in indexing of table unions and table intersections
  • It is now possible to run custom checks over Luau AST during typechecking by setting customModuleCheck in FrontendOptions
  • Fixed codegen issue on arm, where number->vector cast could corrupt that number value for the next time it's read

New Solver

  • error type now behaves as the bottom type during subtyping checks
  • Fixed the scope that is used in subtyping with generic types
  • Fixed astOriginalCallTypes table often used by LSP to match the old solver

Internal Contributors

Co-authored-by: Aaron Weiss [email protected]
Co-authored-by: Andy Friesen [email protected]
Co-authored-by: Vighnesh Vijay [email protected]
Co-authored-by: Vyacheslav Egorov [email protected]

Full Changelog: 0.639...0.640

0.639

16 Aug 18:37
25f91aa
Compare
Choose a tag to compare

What's Changed

  • Fix size of userdata metatable array by @petrihakkinen in #1366
  • Make os.clock use clock_gettime on FreeBSD by @Ketasaja in #1364
  • Variety of bugfixes in the new solver
  • Fix a bug in lua_resume where too many values might be removed from stack when resume throws an error

New Solver

  • Fix an issue where we would hit a recursion limit when applying long chains of type refinements.
  • Weaken the types of table.freeze and table.clone in the new solver so we can accept common code patterns like local a = table.freeze({x=5, x=0}) at the expense of accepting code like table.freeze(true).
  • Don't warn when the # operator is used on a value of type never

Full Changelog: 0.638...0.639

Internal Contributors

Co-authored-by: Aaron Weiss [email protected]
Co-authored-by: Andy Friesen [email protected]
Co-authored-by: Vighnesh Vijay [email protected]
Co-authored-by: Vyacheslav Egorov [email protected]

0.638

09 Aug 17:27
ce8495a
Compare
Choose a tag to compare

What's Changed

New Solver

  • Fix some type inference issues surrounding updates to upvalues eg
local x = 0

function f()
    x = x + 1
end
  • User-defined type function progress
  • Bugfixes for normalization of negated class types. eg SomeClass & (class & ~SomeClass)
  • Fixes to subtyping between tables and the top table type.

Internal Contributors

Co-authored-by: Andy Friesen [email protected]
Co-authored-by: Jeremy Yoo [email protected]
Co-authored-by: Vyacheslav Egorov [email protected]

Full Changelog: 0.637...0.638

0.637

02 Aug 17:06
ce8495a
Compare
Choose a tag to compare

What's Changed?

  • Bug fixes fixes in the new solver

New Solver

  • Simplification of two completely disjoint tables combines them into a single table that inherits all properties / indexers
  • Refining a never & <anything> does not produce type family types nor constraints
  • Silence "inference failed to complete" error when it is the only error reported

Internal Contributors

Co-authored-by: Aaron Weiss [email protected]
Co-authored-by: Andy Friesen [email protected]
Co-authored-by: Dibri Nsofor [email protected]
Co-authored-by: Jeremy Yoo [email protected]
Co-authored-by: Vighnesh Vijay [email protected]
Co-authored-by: Vyacheslav Egorov [email protected]

New Contributors

Full Changelog: 0.636...0.637

0.636

26 Jul 18:01
5e0779f
Compare
Choose a tag to compare

What's Changed?

  • Telemetry support for usage of any type in old/new solver
  • Bug fixes in the new solver

New Solver

  • Fixed constraint ordering bug to infer types more accurately
  • Improved inferring a call to setmetatable()

VM

  • Restored global metatable lookup for typeof on lightuserdata to fix
    unintentional API change (Fixes #1335)

Internal Contributors

Co-authored-by: Aaron Weiss [email protected]
Co-authored-by: Alexander McCord [email protected]
Co-authored-by: Andy Friesen [email protected]
Co-authored-by: Dibri Nsofor [email protected]
Co-authored-by: Jeremy Yoo [email protected]
Co-authored-by: Vighnesh Vijay [email protected]
Co-authored-by: Vyacheslav Egorov [email protected]

New Contributors

Full Changelog: 0.635...0.636

0.635

19 Jul 18:32
a7299c3
Compare
Choose a tag to compare

What's Changed?

New Solver

  • Equality graphs(E-Graphs) data structures were added
  • Refactored even more instances of "type family" with "type function"
  • table.insert no longer spuriously warns while selecting an overload for reasonable arguments.
  • Add time tracing for the new solver
  • Miscellaneous fixes to unit tests

Internal Contributors

Co-authored-by: Aaron Weiss [email protected]
Co-authored-by: Alexander McCord [email protected]
Co-authored-by: Jeremy Yoo [email protected]
Co-authored-by: Vighnesh Vijay [email protected]
Co-authored-by: Vyacheslav Egorov [email protected]


Full Changelog: 0.634...0.635

0.634

12 Jul 17:13
b6b74b4
Compare
Choose a tag to compare

What's Changed?

  • Performance improvement in the old solver
  • Bugfixes in the new solver
  • Keep commentLocations on SourceModule for definition files by @JohnnyMorganz in #1314
  • Fix incorrect comment in Bytecode.h by @mttsner in #1315

Old Solver

  • Mark types that do not need instantiation when being exported to
    prevent unnecessary work from being done

New Solver

  • Index-out-of-bounds bug fix in the resolution resolver
  • Subtyping reasonings are merged only if all failed

Internal Contributors

Co-authored-by: Aaron Weiss [email protected]
Co-authored-by: Vighnesh Vijay [email protected]
Co-authored-by: Vyacheslav Egorov [email protected]

New Contributors


Full Changelog: 0.633...0.634