Repository navigation
0.711
LuauCeption Release
Updated to Luau version 0.711.
Luau Upstream Release Notes
Hi there, folks! We're back with another weekly Luau release!
Language
- Adds the
constkeyword for defining constant bindings that are statically forbidden to be reassigned to. This implements luau-lang/rfcs#166. - Adds a collection of new math constants to Luau's
mathlibrary per luau-lang/rfcs#169.
Analysis
- Fixes a class of bugs where Luau would not retain reasonable upper or lower bounds on free types, resulting in types snapping to
neverorunknowndespite having bounds.
--!strict
-- `lines` will be inferred to be of `{ string }` now, and prior
-- was
local lines = {}
table.insert(lines, table.concat({}, ""))
print(table.concat(lines, "\n"))--!strict
-- `buttons` will be inferred to be of type `{ { a: number } }`
local buttons = {}
table.insert(buttons, { a = 1 })
table.insert(buttons, { a = 2, b = true })
table.insert(buttons, { a = 3 })- Disables the type error from
string.formatwhen called with a dynamically-determined format string (i.e. a non-literal string argument with the typestring) in response to user feedback about it being too noisy. - Resolves an ICE that could occur when type checking curried generic functions. Fixes #2061!
- Fixes false positive type errors from doing equality or inequality against
nilwhen indexing from a table - In #2256, adds a state parameter to the
useratomcallback for consistency with other callbacks.
Compiler
- Improves the compiler's type inference for vector component access, numerical for loops, function return types and singleton type annotations, fixing #2244 #2235 and #2255.
Native Code Generation
- Fixes a bug where some operations on x86_64 would produce integers that would take up more than 32-bits when a 32-bit integer is expected. We resolve these issues by properly truncating to 32-bits in these situations.
- Improves dead store elimination for conditional jumps and fastcalls arguments, improving overall native codegen performance by about 2% on average in benchmarks, with some benchmarks as high as 25%.
Contributors
Co-authored-by: Andy Friesen afriesen@roblox.com
Co-authored-by: Ariel Weiss arielweiss@roblox.com
Co-authored-by: David Cope dcope@roblox.com
Co-authored-by: Hunter Goldstein hgoldstein@roblox.com
Co-authored-by: Ilya Rezvov irezvov@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
Full Changelog: luau-lang/luau@0.710...0.711