0.674
General
- Expose an optional
get_alias
API as an alternative toget_config
in Luau.Require and Luau.RequireNavigator. - Improve the Luau CLI's virtual filesystem implementation to fix bugs related to
init.luau
. Fixes #1816
New Type Solver
- Avoid double reporting errors when erroneous arguments are provided to type functions.
- Fix some instances of unresovable cyclic type functions in loops by only considering the first loop cycles. This results in some type inference inaccuracies when the type of a variable in loop through multiple iterations. Fixes #1413.
- Better generalize free types that have meaningful lower and upper bounds, especially for table indexers.
- Report more specific errors when assigning or returning table literal types, instead of citing the entire table type.
- Inference for functions with generic type packs is greatly improved.
- Fix some internal compiler exceptions when using type-stating functions like
table.freeze
inif _ then _ else _
expressions and short circuiting binary operations. - More consistently simplify unions of primitive types, especially in array-like and dictionary-like tables.
- Fix a crash when type checking an erroneous type alias containing
typeof
with a type assertion expression, as in:type MyTable = {} -- This will error at type checking time as it's a duplicate type MyTable = typeof(setmetatable(SomeTable :: {}, SomeMetaTable));
- Fix a crash when inferring the type of an index expression where the indexee is invalid (e.g.
nil
).
Runtime
- Avoid throwing an exception from
luau_load
if we run out of memory. - Type functions are no longer compiled and included in bytecode. Fixes #1817.
- Fix some instances of Luau C API functions reading invalid debug information (generally when the first or last instruction of a block was being inspected). Fixes #1369.
- Avoid potential signed integer overflow when doing bounds checks on tables.
- Support 16 byte aligned userdata objects when system allocation alignment is also 16 bytes.
- Fix memory leaks in
Luau.Require
when using VM build with no exceptions. Fixes #1827.
Internal Contributors
Co-authored-by: Andy Friesen afriesen@roblox.com
Co-authored-by: Ariel Weiss aaronweiss@roblox.com
Co-authored-by: Hunter Goldstein hgoldstein@roblox.com
Co-authored-by: James McNellis jmcnellis@roblox.com
Co-authored-by: Sora Kanosue skanosue@roblox.com
Co-authored-by: Talha Pathan tpathan@roblox.com
Co-authored-by: Varun Saini vsaini@roblox.com
Co-authored-by: Vyacheslav Egorov vegorov@roblox.com