0.669
What's Changed
General
- We updated Luau's license year to 2025!
- We fixed a bug where large amounts of errors were being printed when deep intersections of unions error.
Require-by-String
This release introduces the Luau.Require
library, which exposes the runtime semantics of require-by-string, including support for the new @self
alias described in this RFC.
The library operates on a virtualized filesystem, allowing consumers to specify navigation rules without assuming a filesystem context. Documentation in Require.h
explains how to enable the library, and the setupState
function in Repl.cpp demonstrates how we've integrated it into the luau CLI tool. Note that the interface in Require.h
is written in C, which enables any application written in a language with a C foreign-function interface to link against this library and enable require-by-string. This makes it straightforward for any application embedding Luau to support require-by-string, provided that it defines or operates within an environment resembling a virtual filesystem.
The core navigation semantics of require-by-string have additionally been pulled into the Luau.RequireNavigator
library. While Luau.Require
internally depends on Luau.RequireNavigator
, the latter does not depend on the Luau VM. This library provides an interface for inspecting require-by-string's navigation behavior and therefore serves as a useful dependency for static tooling. Documentation for Luau.RequireNavigator
is available in RequireNavigator.h
.
Autocomplete
- We fixed a memory leak in fragment autocomplete!
New Solver And Old Solver
- We've found a infinite iteration error over a type pack. We added a way to detect this error and throw an
InternalCompileError
instead. - We fix
table.freeze
not accounting for the first argument not getting type stated. We fall back to regular inference instead. - We fix a crash in the old solver with
length_error
. - We fix a crash in the new solver stemming from generalization reentrancy. Now we correctly generalize interior free types that do not appear in a function signature.
- We fix a nil refinement. (Fixes #1687 and #1451)
Internal Contributors
Co-authored-by: Andy Friesen [email protected]
Co-authored-by: Hunter Goldstein [email protected]
Co-authored-by: Talha Pathan [email protected]
Co-authored-by: Varun Saini [email protected]
Co-authored-by: Vighnesh Vijay [email protected]
Co-authored-by: Vyacheslav Egorov [email protected]
Full Changelog: 0.668...0.669