Skip to content

Releases: luau-lang/luau

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

  • @kalrnlo made their first contribution in #1330

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

0.633

08 Jul 22:01
a7be4fc
Compare
Choose a tag to compare

What's Changed?

  • Mostly stability and bugfixes with the new solver.

New Solver

  • Typechecking with the new solver should respect the no-check hot comment.
  • Record type alias locations and property locations of table assignments
  • Maintain location information for exported table types
  • Stability fixes for normalization
  • Report internal constraint solver errors.

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: Vighnesh Vijay [email protected]
Co-authored-by: Vyacheslav Egorov [email protected]


Full Changelog: 0.632...0.633

0.632

29 Jun 00:38
0d26888
Compare
Choose a tag to compare

What's Changed?

  • Fix #1137 by appropriately retaining additional metadata from definition files throughout the type system.
  • Improve Frontend for LSPs by appropriately allowing the cancellation of typechecking while running its destructor.

New Solver

  • Added support for the rawget type function.
  • Reduced overall static memory usage of builtin type functions.
  • Fixed a crash where visitors could mutate a union or intersection type and fail to invalidate iteration over them in doing so.
  • Revised autocomplete functionality to not rely on a separate run of the type solver when using the new solver.
  • Implemented a more relaxed semantic rule for casting.
  • Fixed some smaller crashes in the new solver.

Native Code Generation

  • Add additional codegen specialization for math.sign
  • Cleaned up a large number of outstanding fflags in the code.

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: James McNellis [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.631...0.632

0.631

20 Jun 23:47
caee04d
Compare
Choose a tag to compare

What's new

  • Added lint warning for using redundant @native attributes on functions inside a --!native module
  • Improved typechecking speed in old solver for modules with large types

New Solver

  • Fixed the length type function sealing the table prematurely
  • Fixed crashes caused by general table indexing expressions

VM

  • Added support for a specialized 3-argument fast-call instruction to improve performance of vector constructor, buffer writes and a few bit32 methods

Full Changelog: 0.630...0.631