Commit Graph

730 Commits

Author SHA1 Message Date
Arseny Kapoulkine
3c42b3a013
Revert "Mark singleton types RFC as implemented (#370)" (#378)
This reverts commit 731e197757.
2022-02-19 10:57:29 -08:00
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
Arseny Kapoulkine
1f679b08b8 Merge branch 'upstream' into merge 2022-02-17 16:42:11 -08:00
Arseny Kapoulkine
eea0374fad Merge branch 'master' into merge 2022-02-17 16:42:08 -08:00
Arseny Kapoulkine
4930409516 Sync to upstream/release/515 2022-02-17 16:41:20 -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
a08f52a6d2 Merge branch 'upstream' into merge 2022-02-11 10:45:41 -08:00
Arseny Kapoulkine
46ba69555a Merge branch 'master' into merge 2022-02-11 10:43:59 -08:00
Arseny Kapoulkine
e9bf182585 Sync to upstream/release/514 2022-02-11 10:43:14 -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
6d40eb4b74 Merge branch 'upstream' into merge 2022-02-04 12:34:32 -08:00
Arseny Kapoulkine
15bc249b2c Merge branch 'master' into merge 2022-02-04 12:34:28 -08:00
Arseny Kapoulkine
bbae466006 Sync to upstream/release/513
This takes the extra bug fix for generic name confusion
2022-02-04 12:31:19 -08:00
Arseny Kapoulkine
d58e70b8c1
Sync to upstream/release/513 (#340) 2022-02-04 08:45:57 -08:00
Arseny Kapoulkine
4748777ce8 Fix isocline warnings 2022-02-03 16:43:44 -08:00
Arseny Kapoulkine
4e60eec1fc Apply fix to the crash 2022-02-03 16:31:50 -08:00
Arseny Kapoulkine
7b3c24f9c8 Merge branch 'upstream' into merge 2022-02-03 15:17:04 -08:00
Arseny Kapoulkine
4b4a6a72c4 Merge branch 'master' into merge 2022-02-03 15:16:22 -08:00
Arseny Kapoulkine
f6b4cc9442 Sync to upstream/release/513 2022-02-03 15:09:37 -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
Arseny Kapoulkine
78039f4535 Thanks gcc, we know you can't compile code. 2022-01-27 13:52:56 -08:00
Arseny Kapoulkine
86b62ac14f Merge branch 'upstream' into merge 2022-01-27 13:32:25 -08:00
Arseny Kapoulkine
b2c8c3ac11 Merge branch 'master' into merge 2022-01-27 13:31:02 -08:00
Arseny Kapoulkine
6e1e277cb8 Sync to upstream/release/512 2022-01-27 13:29:34 -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
Arseny Kapoulkine
9c15f6a6d7 And one more 2022-01-21 08:52:48 -08:00