Commit Graph

703 Commits

Author SHA1 Message Date
Arseny Kapoulkine a44b7906b6
Sync to upstream/release/518 (#419) 2022-03-11 08:55:02 -08:00
Arseny Kapoulkine bf74a347c3 Merge branch 'upstream' into merge 2022-03-11 08:36:10 -08:00
Arseny Kapoulkine 6667df02df Merge branch 'master' into merge 2022-03-11 08:36:08 -08:00
Arseny Kapoulkine feea507be3 Sync to upstream/release/518 2022-03-11 08:31:18 -08:00
Arseny Kapoulkine dbdf91f3ca
Sync to upstream/release/517 (#408) 2022-03-04 08:36:33 -08:00
Arseny Kapoulkine 75e66f13c5 Merge branch 'upstream' into merge 2022-03-04 08:19:48 -08:00
Arseny Kapoulkine 600b8a483a Merge branch 'master' into merge 2022-03-04 08:19:44 -08:00
Arseny Kapoulkine 9bfecab5ba Sync to upstream/release/517 2022-03-04 08:19:20 -08:00
Lily Brown 6c923b8802
Prototyping: strings (#390) 2022-03-02 15:26:58 -08:00
Alan Jeffrey c5477d522d
Prototyping strict mode (#399)
* First cut of strict mode

Co-authored-by: Lily Brown <lily@lily.fyi>
2022-03-02 16:02:51 -06:00
vegorov-rbx d277cc2c3b
Luau Recap: February 2022 (#403)
* Luau Recap: February 2022

* Rebuild pages

* Fixed Markdown linter warnings, converted tabs to spaces and added a note on 'select' optimization

* Apply suggestions from code review

Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>

* Added information about new lint

* Update docs/_posts/2022-02-28-luau-recap-february-2022.md

Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>

Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>
2022-03-02 06:27:35 -08:00
Arseny Kapoulkine 898c0501d1
Update STATUS.md
Add table.clone
2022-02-28 14:16:35 -08:00
Arseny Kapoulkine 5e8242aeda
RFC: table.clone (#362) 2022-02-28 14:15:33 -08:00
Arseny Kapoulkine fb11ca00f4
Update README.md
linenoise -> isocline
2022-02-28 10:50:23 -08:00
Arseny Kapoulkine db3a8a2f0f
Update prototyping.yml (#398)
This limits the scope of prototyping action to PRs to prototyping branch to minimize the GHA cost / latency, as cabal install sometimes takes forever
2022-02-24 17:08:54 -08:00
Arseny Kapoulkine c7eca27909
Sync to upstream/release/516 (#397) 2022-02-24 15:53:37 -08:00
Arseny Kapoulkine 8984f4984c Merge branch 'upstream' into merge 2022-02-24 15:16:35 -08:00
Arseny Kapoulkine 2a549cfbad Merge branch 'master' into merge 2022-02-24 15:16:33 -08:00
Arseny Kapoulkine a8eabedd57 Sync to upstream/release/516 2022-02-24 15:15:41 -08:00
Lily Brown 0bd21762ae
Prototype bools and relational operators (#387)
Prototypes booleans and relational operators.

As part of this I removed `FFI/Data/Bool.agda`, because it was getting in the way - we already use `Agda.Builtin.Bool` instead for other cases.
2022-02-24 11:17:46 -08:00
Petri Häkkinen 0bc7c51afc
Lua API: add return types to table getters (#389)
Co-authored-by: Petri Häkkinen <petrih@rmd.remedy.fi>
2022-02-23 10:03:58 -08:00
Lily Brown cd18adc20e
Prototyping: binary operations (#377)
Adds support for binary operations on numbers.
2022-02-22 15:52:56 -08:00
James Napora 1334db600f
Update grammar.md (#379) 2022-02-22 11:24:15 -08:00
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
Arseny Kapoulkine 0062000d46 One more 2022-01-21 08:43:41 -08:00
Arseny Kapoulkine 699660a4eb Fix MSVC warnings 2022-01-21 08:37:50 -08:00
Arseny Kapoulkine 9cfe44e5a2 Merge branch 'upstream' into merge 2022-01-21 08:24:01 -08:00
Arseny Kapoulkine 5b4af9704f Merge branch 'master' into merge 2022-01-21 08:23:25 -08:00
Arseny Kapoulkine d70a0788c5 Sync to upstream/release/511 2022-01-21 08:23:02 -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 e6dd6bd158 Merge branch 'upstream' into merge 2022-01-14 08:07:10 -08:00
Arseny Kapoulkine e0af631169 Merge branch 'master' into merge 2022-01-14 08:07:08 -08:00
Arseny Kapoulkine 80d5c0000e Sync to upstream/release/510 2022-01-14 08:06:31 -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 d189bd9b1a Enable V2Read flag early 2022-01-06 17:37:50 -08:00
Arseny Kapoulkine 8464a78d43 Merge branch 'upstream' into merge 2022-01-06 16:08:33 -08:00
Arseny Kapoulkine c7e1a94996 Merge branch 'master' into merge 2022-01-06 16:08:24 -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
Arseny Kapoulkine 62a40d0b86 Merge commit 'a9aa4faf24e6cea1ac0e33d0054a7328a35f9d4a' into merge 2022-01-06 14:17:44 -08:00