Download Latest Version 0.715 source code.tar.gz (2.2 MB)
Email in envelope

Get an email when there's a new version of Luau

Home / 0.711
Name Modified Size InfoDownloads / Week
Parent folder
luau-windows.zip 2026-03-06 2.7 MB
Luau.Web.js 2026-03-06 3.7 MB
luau-ubuntu.zip 2026-03-06 6.6 MB
luau-macos.zip 2026-03-06 4.9 MB
0.711 source code.tar.gz 2026-03-06 2.2 MB
0.711 source code.zip 2026-03-06 2.6 MB
README.md 2026-03-06 2.9 kB
Totals: 7 Items   22.6 MB 0

Hi there, folks! We're back with another weekly Luau release!

Language

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.

    :::luau --!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"))

    :::luau --!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: https://github.com/luau-lang/luau/compare/0.710...0.711

Source: README.md, updated 2026-03-06