Skip to content

0.711

Choose a tag to compare

@github-actions github-actions released this 07 Mar 03:50
· 65 commits to main since this release

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 const keyword 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 math library 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 never or unknown despite 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.format when called with a dynamically-determined format string (i.e. a non-literal string argument with the type string) 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 nil when indexing from a table
  • In #2256, adds a state parameter to the useratom callback 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