Skip to content

0.669

Compare
Choose a tag to compare
@github-actions github-actions released this 12 Apr 01:01
a8d1459

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