A fast, small, safe, gradually typed embeddable scripting language derived from Lua
Go to file
Andy Friesen 25cc75b096 * Progress toward a diffing algorithm for types. We hope that this will be useful for writing clearer error messages.
* Add a missing recursion limiter in `Unifier::tryUnifyTables`.  This was causing a crash in certain situations.
* Luau heap graph enumeration improvements:
    * Weak references are not reported
    * Added tag as a fallback name of non-string table links
    * Included top Luau function information in thread name to understand where thread might be suspended
* Constant folding for `math.pi` and `math.huge` at -O2
* Optimize `string.format` and `%*`
    * This change makes string interpolation 1.5x-2x faster depending on the number and type of formatted components, assuming a few are using primitive types, and reduces associated GC pressure.

New solver

* Initial work toward tracking the upper and lower bounds of types more accurately.

JIT

* Add IrCmd::CHECK_TRUTHY for improved assert fast-calls
* Do not compute type map for modules without types
* Capture metatable+readonly state for NEW_TABLE IR instructions
* Replace JUMP_CMP_ANY with CMP_ANY and existing JUMP_EQ_INT
* Add support for exits to VM with reentry lock in VmExit
2023-08-04 10:01:35 -07:00
Analysis * Progress toward a diffing algorithm for types. We hope that this will be useful for writing clearer error messages. 2023-08-04 10:01:35 -07:00
Ast Sync to upstream/release/584 2023-07-14 08:57:16 -07:00
bench * Progress toward a diffing algorithm for types. We hope that this will be useful for writing clearer error messages. 2023-08-04 10:01:35 -07:00
CLI Sync to upstream/release/588 2023-07-28 14:37:00 +03:00
CodeGen * Progress toward a diffing algorithm for types. We hope that this will be useful for writing clearer error messages. 2023-08-04 10:01:35 -07:00
Common/include/Luau * Progress toward a diffing algorithm for types. We hope that this will be useful for writing clearer error messages. 2023-08-04 10:01:35 -07:00
Compiler * Progress toward a diffing algorithm for types. We hope that this will be useful for writing clearer error messages. 2023-08-04 10:01:35 -07:00
extern Sync to upstream/release/536 2022-07-14 15:39:35 -07:00
fuzz Sync to upstream/release/584 2023-07-14 08:57:16 -07:00
tests * Progress toward a diffing algorithm for types. We hope that this will be useful for writing clearer error messages. 2023-08-04 10:01:35 -07:00
tools * Progress toward a diffing algorithm for types. We hope that this will be useful for writing clearer error messages. 2023-08-04 10:01:35 -07:00
VM * Progress toward a diffing algorithm for types. We hope that this will be useful for writing clearer error messages. 2023-08-04 10:01:35 -07:00
.clang-format Sync to upstream/release/501 (#20) 2021-11-03 10:15:50 -07:00
.gitignore Sync to upstream/release/539 2022-08-04 14:27:28 -07:00
CMakeLists.txt Sync to upstream/release/580 2023-06-09 15:20:36 +03:00
LICENSE.txt Sync to upstream/release/511 2022-01-21 08:23:02 -08:00
lua_LICENSE.txt Sync to upstream/release/501 (#20) 2021-11-03 10:15:50 -07:00
Makefile Sync to upstream/release/583 2023-07-07 10:14:35 -07:00
README.md Add README.md 2020-06-10 16:09:35 -07:00
Sources.cmake * Progress toward a diffing algorithm for types. We hope that this will be useful for writing clearer error messages. 2023-08-04 10:01:35 -07:00

Luau

Luau is a fast, small, safe and gradually typed embeddable scripting language derived from Lua. It is used by Roblox game developers to write game code, as well as by Roblox engineers to implement large parts of the user-facing application code as well as portions of the editor (Roblox Studio) as plugins.

This repository hosts documentation for the language as well as satellite materials.