Immutable
release. Only release title and notes can be modified.
Hey all!
We've got a bunch of bugfixes and some initial prototypes for upcoming features and experiments.
Analysis
- Improve type generalization by ensuring that free types are associated with the enclosing function scope, not just the block scope.
- Prototype code for an upcoming experiment: Requiring top-level functions to be annotated
- Improve inference of read-only table indexers. Fixes #2669
- Expose integer types to UDTFs #2618
- The logic to replace generics by
unknownwas overly aggressive. This simplification is only valid when the generic occurs exactly once in negative position. This is now fixed.
local function get(model)
model:Find("leg")
end
-- Previously:
-- (t1) -> () where t1 = { read Find: (t1, string) -> (unknown, ...unknown) }
--
-- Now:
-- <T...>(t1) -> () where t1 = { read Find: (t1, string) -> T... }- Retain type function state when cloning type function instances. Fixes #2707 and #2273
- The linter now properly reports deprecation warnings for deprecated APIs that occur within intersection and union types.
- Special handling for bidirectional inference of table literals that are passed to
setmetatable. eg
type A = setmetatable<{}, { test: DateTime? }>;
local x: A = setmetatable({}, { test = nil })VM
- Add initial embedder support for isolated heaps.
- Fix
luaV_equalvalpassing t1's metatable twice for TOBJECT__eq. See #2727 - Improvement to the Luau SCCP pass
- Adjust local debug and type info range after undoEmit
- Prototype
coroutine.finallyimplementation on the Luau VM side. See luau-lang/rfcs#187 - Add local names to the Dump_Locals output in the Luau compiler
- Fix off-by-one bug in
BytecodeBuilder::expandJumps - Unrolling of loops with a trip count of zero should be zero cost
Native Codegen
- Fixed incorrect tag propagation to the entry block. This could cause incorrect optimization.
Co-authored-by: Andy Friesen afriesen@roblox.com
Co-authored-by: Annie Tang annietang@roblox.com
Co-authored-by: Ariel Weiss arielweiss@roblox.com
Co-authored-by: Hunter Goldstein hgoldstein@roblox.com
Co-authored-by: Sora Kanosue skanosue@roblox.com
Co-authored-by: Thomas Schollenberger tschollenberger@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