Commit graph

324 commits

Author SHA1 Message Date
Alan Jeffrey
fc33b0c702
Fix evaluation rule for function application (#375) 2022-02-18 16:47:23 -06:00
Alan Jeffrey
0b783d8932
Add Properties.Equality to prototyping (#376) 2022-02-18 16:47:04 -06:00
Lily Brown
7f867ac166
Prototyping: numbers (#368)
Adds number support to the prototype. Binary operators are next.
2022-02-18 11:09:00 -08:00
Arseny Kapoulkine
a9bdce6cc0
Rename tests to tests.py (#374) 2022-02-18 10:04:38 -08:00
Arseny Kapoulkine
5b78465059
Sync to upstream/release/514 (#372) 2022-02-17 17:18:01 -08:00
Lily Brown
1ac64af484
Prototyping: Revise CI (#371)
Introduces a test runner with test cases. Also significantly overhauls the GHA configuration.
2022-02-17 17:15:33 -08:00
Arseny Kapoulkine
6aaaafcc8d
Add documentation for upcoming CommentDirective lint (#361) 2022-02-17 16:58:43 -08:00
Alexander McCord
731e197757
Mark singleton types RFC as implemented (#370) 2022-02-17 16:16:31 -08:00
Arseny Kapoulkine
e49a0fd4cd
Mark default type parameters RFC as implemented (#369) 2022-02-17 16:14:35 -08:00
Arseny Kapoulkine
e541e19f44
Create RFC status tracking document (#363)
This tracks status of all unimplemented RFCs in one central place. Hopefully we won't forget to update this when new RFCs are added!
2022-02-15 18:37:02 -08:00
Lily Brown
c8d6dc2758
Revise GHA workflows for prototyping (#367)
Changed the GHA workflows to:
- Not run `build` and `release` workflows for PRs that only affect `prototyping/`
- Run `prototyping` workflow when PRs affect `Analysis/**`, `Ast/**`, or the `luau-ast` source files
2022-02-15 14:24:51 -08:00
Lily Brown
f0c9d84461
Prototyping: Parse type annotations (#366)
Parses type annotations from the JSON output of `luau-ast`.
2022-02-15 14:10:43 -08:00
Lily Brown
4b7e06e14f
Emit more information for AstLocals in JSON encoder (#364)
We don't emit type annotations right now for `AstLocal`s in the JSON encoder. This makes it really hard to surface annotations in the Agda implementation. This PR changes it to emit location and type annotations, if present.
2022-02-14 14:14:11 -08:00
Arseny Kapoulkine
7d679b317f
RFC: Generalized iteration (#335)
Co-authored-by: dcope-rbx <91100513+dcope-rbx@users.noreply.github.com>
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
2022-02-14 10:04:07 -08:00
Alan Jeffrey
e0a9bc191a
Prototype: added syntax for optional type annotations (#358) 2022-02-11 19:03:26 -06:00
Alan Jeffrey
db90c7da48
Add a typeToString function to the prototype (#354)
* Added Luau.Type.ToString
2022-02-11 14:38:35 -06:00
Arseny Kapoulkine
63d5423bbb
Sync to upstream/release/514 (#357) 2022-02-11 11:02:09 -08:00
Arseny Kapoulkine
aecd60371b
Update performance.md (#355)
Document weak table shrinking and paged sweeper
2022-02-11 09:13:27 -08:00
Alan Jeffrey
5187e64f88
Implement a prototype interpreter (#353)
* First cut interpreter
2022-02-09 17:14:29 -06:00
Arseny Kapoulkine
abe3f87b48
docs: Add documentation for upcoming MisleadingAndOr lint (#349)
This is going to be part of Luau 0.514
2022-02-09 09:27:01 -08:00
Arseny Kapoulkine
ec481695a3
Update library.md (#352)
Clarify the relationship between `typeof` and `newproxy`. As a sandboxing measure, `typeof` only uses `__type` on host-defined userdata.

Fixes #351.
2022-02-09 09:19:50 -08:00
Alan Jeffrey
041838a942
Prototyping a small subset of Luau in Agda (#350)
* First cut reading JSON into an Agda representation of Luau syntax
2022-02-08 18:26:58 -06:00
Michael Savage
324bc4b01d
Add a build option to link with the static CRT (#343)
LUAU_STATIC_CRT CMake option can be set externally (requires CMake 3.15+)
2022-02-07 13:51:57 -08:00
Lily Brown
7ffb5fc4fd
Add Luau.Ast.CLI target (#345)
Adds a `luau-ast` CLI that dumps Luau source to JSON. @asajeffrey and I are planning to use this functionality to construct an Agda model of the Luau type system/operational semantics, to allow formally proving properties of Luau's type systems.
2022-02-07 12:08:43 -08:00
Arseny Kapoulkine
e51ff38d19
Sync to upstream/release/513 (#342) 2022-02-04 12:46:08 -08:00
Arseny Kapoulkine
d58e70b8c1
Sync to upstream/release/513 (#340) 2022-02-04 08:45:57 -08:00
Andy Friesen
c572f6944f
January 2022 recap (#331) 2022-02-01 14:49:55 -08:00
Arseny Kapoulkine
2f989fc049
Sync to upstream/release/512 (#330)
- Improve refinement support for unions, in particular it's now possible to implement tagged unions as a union of tables where individual branches use a string literal type for one of the fields.
- Fix `string.split` type information
- Optimize `select(_, ...)` to run in constant time (~2.7x faster on VariadicSelect benchmark)
- Improve debug line information for multi-line assignments
- Improve compilation of table literals when table keys are constant expressions/variables
- Use forward GC barrier for `setmetatable` which slightly accelerates GC progress
2022-01-27 15:46:05 -08:00
Vlad Marica
4b96f7efc1
luau-analyze: Add support for reading source code from stdin (#325)
Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
2022-01-25 08:25:01 -08:00
Arseny Kapoulkine
8fe95c9963
Sync to upstream/release/511 (#324)
- TableOperations lint now includes a warning for table.create(N, {}) (which is likely a mistake since the table is shared by all entries)
- Type checker now type checks #v when v is a union
- Parser now rejects sources that consists of a single unfinished long comment
- Work around significant MSVC 2022 performance regression, bringing it more or less in line with MSVC 2019
- Compiler now predicts array size for newly allocated tables when the table is filled in a short loop
- Small improvements in compilation throughput (~2% faster)
- Implement paged sweeper for GC which improves sweep throughput 2-3x and reduces memory consumption by 8 bytes per object (once it is stabilized we will see additional 8 bytes per object of savings)
- Improve Repl Tab completion
- Repl now supports -i (interactive mode to run code in context of a script's environment) and -On (to control optimization flags)
2022-01-21 09:00:19 -08:00
Shiro
478a3da634
Update copyright years. (#323) 2022-01-20 09:42:49 -08:00
JohnnyMorganz
4e5ff99582
Improve Grammar documentation (#315) 2022-01-20 08:27:19 -08:00
dcope-rbx
49ce5096a4
Fixed a couple spelling mistakes in markdown files. (#316) 2022-01-17 09:44:31 -08:00
Halalaluyafail3
497d625f73
Fix some mistakes in the documentation (#314) 2022-01-14 13:42:49 -08:00
Arseny Kapoulkine
32c39e2162
Sync to upstream/release/510 (#313) 2022-01-14 08:20:09 -08:00
Arseny Kapoulkine
b2af550b08
Update grammar.md
Add forgotten quotes around 'type'; reported by @Dionysusnu
2022-01-13 15:23:18 -08:00
Arseny Kapoulkine
d6ba106be6
Update compatibility.md
Add a note about function identity
2022-01-12 11:56:46 -08:00
T 'Filtered' C
abf9fc2754
Update compatibility.md to split coroutine.close from lua_resetthread (#309)
Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
2022-01-12 11:50:25 -08:00
rafa_br34
b7f78f4997
MSVC warning C4244 fixes (#308)
Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
2022-01-12 10:05:31 -08:00
Arseny Kapoulkine
b7a7b92d12
Update syntax.md
Remove confusing block because it reads as if we *do* support this syntax if you aren't reading carefully.
2022-01-11 13:24:56 -08:00
Arseny Kapoulkine
a23b467485
Add turbofish discussion to generic function RFC (#300) 2022-01-07 11:07:36 -08:00
Arseny Kapoulkine
287b46e6a7
Mark bidirectional ascription RFC as implemented (#305) 2022-01-07 11:07:22 -08:00
Arseny Kapoulkine
b5e338325b
Mark coroutine.close RFC as implemented (#304) 2022-01-07 08:52:33 -08:00
Arseny Kapoulkine
d50b079325
Sync to upstream/release/509 (#303)
- Rework transaction log used for type checking which should result in more robust type checking internals with fewer bugs
- Reduce the amount of memory consumed by type checker on large module graphs
- Type checker now errors on attempts to change the type of imported module fields
- The return type of newproxy is now any (fixes #296)
- Implement new number printing algorithm (Schubfach) which makes tostring() produce precise (round-trippable) and short decimal output up to 10x faster
- Fix lua_Debug::linedefined to point to the line with the function definition instead of the first statement (fixes #265)
- Fix minor bugs in Tab completion in Repl
- Repl now saves/restores command history in ~/.luau_history
2022-01-06 17:46:53 -08:00
Arseny Kapoulkine
d323237b6c
Sync to upstream/release/508 (#301)
This version isn't for release because we've skipped some internal
numbers due to year-end schedule changes, but it's better to merge
separately.
2022-01-06 15:26:14 -08:00
Alan Jeffrey
82587bef29
RFC: Fix an unsoundness issue around stripping optional properties (#276)
* Fix an unsoundness issue around stripping optional properties

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
2022-01-06 12:48:09 -06:00
Arseny Kapoulkine
73b7bcb2da
docs: Move Luau.Web.js fetch to the end of the page
This was moved in the CodeMirror change, but that may break Module setup in the embedded <script> block, so move it back.
2022-01-04 15:04:25 -08:00
Arseny Kapoulkine
fa35884e5b
Update library.md
A few small tweaks and fixes.
2021-12-27 13:08:56 -08:00
Arseny Kapoulkine
6203bf6ac5
Update grammar.md
Remove TOC & mark page as wide.
2021-12-27 12:51:23 -08:00
Arseny Kapoulkine
65177c425c
Update grammar.md
This changes the grammar to follow the EBNF rules more rigorously, most significantly quoting all keywords.
2021-12-27 12:48:58 -08:00