Commit graph

51 commits

Author SHA1 Message Date
Alexander Youngblood
23241e2afc Sync to upstream/release/658 2025-01-24 10:42:11 -08:00
Alexander Youngblood
0bd9321957 Sync to upstream/release/653
## What's Changed?

* Optimized the vector dot product by up to 24%
* Allow for x/y/z/X/Y/Z vector field access by registering a `vector` metatable
with an `__index` method
* Fixed a bug preventing consistent recovery from parse errors in table types.
* Optimized `k*n` and `k+n` when types are known
* Allow fragment autocomplete to handle cases like the automatic insertion of
parens, keywords, strings, etc., while maintaining a correct relative positioning

 ### New Solver

* Added support for 'thread' and 'buffer' primitive types in Luau user-defined
type functions
* Allow for `nil` assignment to tables and classes with indexers

---------

Co-authored-by: Aaron Weiss <aaronweiss@roblox.com>
Co-authored-by: Andy Friesen <afriesen@roblox.com>
Co-authored-by: Aviral Goel <agoel@roblox.com>
Co-authored-by: Hunter Goldstein <hgoldstein@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>
2024-11-22 12:37:17 -08:00
Hunter Goldstein
c799a548e4 Sync to version/652
> What's new?

* Fragment Autocomplete: a new API allows for type checking a small
  fragment of code against an existing file, significantly speeding up
  autocomplete performance in large files.

> New Solver

* E-Graphs have landed: this is an ongoing approach to make the new type solver
  simplify types in a more consistent and principled manner, based on
  similar work (e.g.: https://egraphs-good.github.io/).
* Adds support for exported / local user type functions.
* Fixes a set of bugs in which the new solver will fail to complete
  inference for simple expressions with just literals and operators.

> General

* It is now an explicit runtime error to `require` a path with a ".lua" or
  ".luau" extension, and the error message will suggest removing the extension.
  ```
  require("path/to/mymodule.lua")
  ```
* Fixes a bug in which whether two `Symbol`s are equal depends on
  whether the new solver is enabled.
2024-11-08 11:01:20 -08:00
Vyacheslav Egorov
47e3123863 Sync to upstream/release/648 2024-10-18 18:08:01 +03:00
Andy Friesen
8531df04c9 Sync to upstream/release/646 2024-10-04 09:42:22 -07:00
Aaron Weiss
a74031bae7 Sync release to upstream/release/641 2024-08-30 12:28:44 -07:00
Vighnesh
497c3edb91 Sync to upstream/release/639 2024-08-16 09:48:02 -07:00
Andy Friesen
8a99f25381 Sync to upstream/release/638 2024-08-09 09:46:26 -07:00
Junseo Yoo
fad8aaf0ab Sync to upstream/release/637 2024-08-01 16:25:12 -07:00
Vighnesh
6fd26c55ff Sync to upstream/release/635 2024-07-19 10:21:40 -07:00
Junseo Yoo
1c1476fa2d Sync to upstream/release/634 2024-07-11 15:13:45 -07:00
Vighnesh
cfcb545b39 Sync to upstream/release/633 2024-07-08 13:22:11 -07:00
Vyacheslav Egorov
816cb1d1c4 Sync to upstream/release/631 2024-06-21 01:23:57 +03:00
Andy Friesen
5dd97352c1 Sync to upstream/release/629 2024-06-07 10:09:03 -07:00
Vyacheslav Egorov
0f0c0e4d28 Sync to upstream/release/621 2024-04-12 13:44:40 +03:00
Vighnesh
22686ef1b0 Sync to upstream/release/614 2024-02-23 10:40:00 -08:00
Vighnesh
50b4779798 Sync to upstream/release/608 2024-01-12 11:16:39 -08:00
Andy Friesen
674c6c40c0 Sync to upstream/release/604 2023-11-17 10:15:31 -08:00
Vighnesh
897a5da14e Sync to upstream/release/600 2023-10-20 13:36:26 -07:00
Vyacheslav Egorov
089da9e924 Sync to upstream/release/590 2023-08-11 15:55:30 +03:00
Vyacheslav Egorov
b403075573 Sync to upstream/release/584 2023-07-14 08:57:16 -07:00
Andy Friesen
e00dbbeaf2 Sync to upstream/release/583 2023-07-07 10:14:35 -07:00
Vyacheslav Egorov
8bc2f51d89 Sync to upstream/release/582 2023-06-24 08:33:44 +03:00
Andy Friesen
6ee4f190ab Sync to upstream/release/581 2023-06-16 10:01:18 -07:00
Vyacheslav Egorov
b8e9d07b20 Sync to upstream/release/578 2023-05-25 23:46:51 +03:00
Vyacheslav Egorov
3247aabf75 Sync to upstream/release/576 2023-05-12 15:15:01 +03:00
Vyacheslav Egorov
1c2ce0d731 Sync to upstream/release/574 2023-04-28 14:55:55 +03:00
Andy Friesen
d5cdb687e0 Sync to upstream/release/573 2023-04-21 14:41:03 -07:00
Andy Friesen
81200e13f6 Sync to upstream/release/569 2023-03-24 10:34:14 -07:00
Andy Friesen
53d03f94f7 Sync to upstream/release/561 2023-01-27 13:28:45 -08:00
Vyacheslav Egorov
9958d23caa Sync to upstream/release/557 2023-01-03 19:33:19 +02:00
Andy Friesen
2eff6cfe50 Sync to upstream/release/550 2022-10-21 10:33:43 -07:00
Vyacheslav Egorov
d82e73607c Sync to upstream/release/549 2022-10-14 01:59:53 +03:00
Arseny Kapoulkine
c6ac06e656 Sync to upstream/release/543 2022-09-01 16:00:14 -07:00
Arseny Kapoulkine
106b269885 Sync to upstream/release/540 2022-08-11 13:42:54 -07:00
Arseny Kapoulkine
4a9cfd57a6 Sync to upstream/release/539 2022-08-04 14:27:28 -07:00
Arseny Kapoulkine
4a95f2201e Sync to upstream/release/535 2022-07-07 18:05:31 -07:00
Arseny Kapoulkine
88b3984711 Sync to upstream/release/532 2022-06-16 17:54:42 -07:00
Arseny Kapoulkine
316838f253 Sync to upstream/release/531 2022-06-16 17:52:23 -07:00
Rob Blanckaert
871a3a21c5 Sync to origin/release/530 2022-06-03 13:32:20 -07:00
Arseny Kapoulkine
7e9e697489 Sync to upstream/release/527 2022-05-19 16:46:52 -07:00
Arseny Kapoulkine
298b33859b Sync to upstream/release/527 2022-05-13 12:16:50 -07:00
Arseny Kapoulkine
4d9ac7db1e Sync to upstream/release/525 2022-04-28 18:04:52 -07:00
Arseny Kapoulkine
f2677f6975 Sync to upstream/release/524 2022-04-21 14:04:22 -07:00
Arseny Kapoulkine
02ed5373ec Sync to upstream/release/523 2022-04-14 14:57:15 -07:00
Arseny Kapoulkine
4930409516 Sync to upstream/release/515 2022-02-17 16:41:20 -08:00
Arseny Kapoulkine
f6b4cc9442 Sync to upstream/release/513 2022-02-03 15:09:37 -08:00
Arseny Kapoulkine
eed18acec8 Sync to upstream/release/506 2021-12-02 15:20:08 -08:00
Arseny Kapoulkine
82d74e6f73 Sync to upstream/release/504 2021-11-11 18:12:39 -08:00
Arseny Kapoulkine
08c66ef2e1 Sync to upstream/release/502
Changes:
- Support for time tracing for analysis/compiler (not currently exposed
  through CLI)
- Support for type pack arguments in type aliases (#83)
- Basic support for require(path) in luau-analyze
- Add a lint warning for table.move with 0 index as part of
  TableOperation lint
- Remove last STL dependency from Luau.VM
- Minor VS2022 performance tuning

Co-authored-by: Rodactor <rodactor@roblox.com>
2021-11-04 19:12:52 -07:00