luau/Compiler/src
Andy Friesen a251bc68a2
Sync to upstream/release/650 (#1502)
* New `vector` library! See https://rfcs.luau.org/vector-library.html
for details
* Replace the use of non-portable `strnlen` with `memchr`. `strnlen` is
not part of any C or C++ standard.
* Introduce `lua_newuserdatataggedwithmetatable` for faster tagged
userdata creation of userdata with metatables registered with
`lua_setuserdatametatable`

Old Solver

* It used to be the case that a module's result type would
unconditionally be inferred to be `any` if it imported any module that
participates in any import cycle. This is now fixed.

New Solver

* Improve inference of `table.freeze`: We now infer read-only properties
on tables after they have been frozen.
* We now correctly flag cases where `string.format` is called with 0
arguments.
* Fix a bug in user-defined type functions where table properties could
be lost if the table had a metatable
* Reset the random number seed for each evaluation of a type function
* We now retry subtyping arguments if it failed due to hidden variadics.

---------

Co-authored-by: Aaron Weiss <aaronweiss@roblox.com>
Co-authored-by: Alexander McCord <amccord@roblox.com>
Co-authored-by: Vighnesh <vvijay@roblox.com>
Co-authored-by: Aviral Goel <agoel@roblox.com>
Co-authored-by: David Cope <dcope@roblox.com>
Co-authored-by: Lily Brown <lbrown@roblox.com>
Co-authored-by: Vyacheslav Egorov <vegorov@roblox.com>
Co-authored-by: Junseo Yoo <jyoo@roblox.com>
2024-11-01 12:06:07 -07:00
..
BuiltinFolding.cpp Sync to upstream/release/613 (#1167) 2024-02-15 18:04:39 -08:00
BuiltinFolding.h Sync to upstream/release/589 (#1000) 2023-08-04 12:18:54 -07:00
Builtins.cpp Sync to upstream/release/650 (#1502) 2024-11-01 12:06:07 -07:00
Builtins.h Sync to upstream/release/637 (#1354) 2024-08-02 07:30:04 -07:00
BytecodeBuilder.cpp Sync to upstream/release/641 (#1382) 2024-08-30 13:16:51 -07:00
Compiler.cpp Sync to upstream/release/646 (#1458) 2024-10-04 11:29:55 -07:00
ConstantFolding.cpp Sync to upstream/release/637 (#1354) 2024-08-02 07:30:04 -07:00
ConstantFolding.h Sync to upstream/release/637 (#1354) 2024-08-02 07:30:04 -07:00
CostModel.cpp Sync to upstream/release/637 (#1354) 2024-08-02 07:30:04 -07:00
CostModel.h Sync to upstream/release/536 (#592) 2022-07-14 15:52:26 -07:00
lcode.cpp Sync to upstream/release/505 (#216) 2021-11-19 08:10:07 -08:00
TableShape.cpp Sync to upstream/release/513 (#340) 2022-02-04 08:45:57 -08:00
TableShape.h Sync to upstream/release/510 (#313) 2022-01-14 08:20:09 -08:00
Types.cpp Sync to upstream/release/650 (#1502) 2024-11-01 12:06:07 -07:00
Types.h Sync to upstream/release/650 (#1502) 2024-11-01 12:06:07 -07:00
ValueTracking.cpp Use const char* const* over const char** (#1005) 2023-08-07 13:45:04 -07:00
ValueTracking.h Use const char* const* over const char** (#1005) 2023-08-07 13:45:04 -07:00