1
0
Fork 0
mirror of https://github.com/luau-lang/luau.git synced 2025-04-07 20:30:53 +01:00
Commit graph

317 commits

Author SHA1 Message Date
Alexander McCord
731e197757
Mark singleton types RFC as implemented () 2022-02-17 16:16:31 -08:00
Arseny Kapoulkine
e49a0fd4cd
Mark default type parameters RFC as implemented () 2022-02-17 16:14:35 -08:00
Arseny Kapoulkine
e541e19f44
Create RFC status tracking document ()
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 ()
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 ()
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 ()
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 ()
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 () 2022-02-11 19:03:26 -06:00
Alan Jeffrey
db90c7da48
Add a typeToString function to the prototype ()
* Added Luau.Type.ToString
2022-02-11 14:38:35 -06:00
Arseny Kapoulkine
63d5423bbb
Sync to upstream/release/514 () 2022-02-11 11:02:09 -08:00
Arseny Kapoulkine
aecd60371b
Update performance.md ()
Document weak table shrinking and paged sweeper
2022-02-11 09:13:27 -08:00
Alan Jeffrey
5187e64f88
Implement a prototype interpreter ()
* First cut interpreter
2022-02-09 17:14:29 -06:00
Arseny Kapoulkine
abe3f87b48
docs: Add documentation for upcoming MisleadingAndOr lint ()
This is going to be part of Luau 0.514
2022-02-09 09:27:01 -08:00
Arseny Kapoulkine
ec481695a3
Update library.md ()
Clarify the relationship between `typeof` and `newproxy`. As a sandboxing measure, `typeof` only uses `__type` on host-defined userdata.

Fixes .
2022-02-09 09:19:50 -08:00
Alan Jeffrey
041838a942
Prototyping a small subset of Luau in Agda ()
* 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 ()
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 ()
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 () 2022-02-04 12:46:08 -08:00
Arseny Kapoulkine
d58e70b8c1
Sync to upstream/release/513 () 2022-02-04 08:45:57 -08:00
Andy Friesen
c572f6944f
January 2022 recap () 2022-02-01 14:49:55 -08:00
Arseny Kapoulkine
2f989fc049
Sync to upstream/release/512 ()
- 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 ()
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 ()
- 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. () 2022-01-20 09:42:49 -08:00
JohnnyMorganz
4e5ff99582
Improve Grammar documentation () 2022-01-20 08:27:19 -08:00
dcope-rbx
49ce5096a4
Fixed a couple spelling mistakes in markdown files. () 2022-01-17 09:44:31 -08:00
Halalaluyafail3
497d625f73
Fix some mistakes in the documentation () 2022-01-14 13:42:49 -08:00
Arseny Kapoulkine
32c39e2162
Sync to upstream/release/510 () 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 ()
Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
2022-01-12 11:50:25 -08:00
rafa_br34
b7f78f4997
MSVC warning C4244 fixes ()
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 () 2022-01-07 11:07:36 -08:00
Arseny Kapoulkine
287b46e6a7
Mark bidirectional ascription RFC as implemented () 2022-01-07 11:07:22 -08:00
Arseny Kapoulkine
b5e338325b
Mark coroutine.close RFC as implemented () 2022-01-07 08:52:33 -08:00
Arseny Kapoulkine
d50b079325
Sync to upstream/release/509 ()
- 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 )
- 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 )
- 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 ()
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 ()
* 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
Arseny Kapoulkine
d079201a6e Fix repeated calls to print() clearing output 2021-12-20 15:44:51 -08:00
Arseny Kapoulkine
fedd9a5f78 docs: Fix label syntax 2021-12-20 15:40:38 -08:00
boyned//Kampfkarren
5e7648947b
RFC: Safe navigation operator ()
Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>
2021-12-20 15:38:15 -08:00
Arseny Kapoulkine
9e7e779c02
Quality of life improvements to web demo ()
- Upgrade CodeMirror to 5.65
- Enable matching paren highlighting via an addon
- Remove extra buttons and replace clear output with a checkbox
- Highlight error line on parsing/execution error
- Change demo layout to wide to increase available width
2021-12-20 15:36:41 -08:00
Pelanyo Kamara
019eeeb853
Add CodeMirror Editor for Web Demo ()
Also remove timestamps from output
2021-12-15 09:23:26 -08:00
Arseny Kapoulkine
f2e6a8f4a5
Sync to upstream/release/507-pre ()
This doesn't contain all changes for 507 yet but we might want to do the
Luau 0.507 release a bit earlier to end the year sooner.

Changes:

- Type ascription (::) now permits casts between related types in both directions, allowing to refine or loosen the type (RFC )
- Fix type definition for tonumber to return number? since the input string isn't guaranteed to contain a valid number
- Fix type refinements for field access via []
- Many stability fixes for type checker
- Provide extra information in error messages for type mismatches in more cases
- Improve performance of type checking for large unions when union members are string literals
- Add coverage reporting support to Repl (--coverage command line argument) and lua_getcoverage C API
- Work around code signing issues during Makefile builds on macOS
- Improve performance of truthiness checks in some cases, particularly on Apple M1, resulting in 10-25% perf gains on qsort benchmark depending on the CPU/compiler
- Fix support for little-endian systems; IBM s390x here we go!
2021-12-10 14:05:05 -08:00
Arseny Kapoulkine
88be067c0b
Switch coverage build to checkout@v2 ()
Attempt to fix coverage builds by using checkout@v2 instead of v1 which might fix the detacthed HEAD issue.

On the off chance it doesn't, add extra logging around git specifically.
2021-12-09 17:50:29 -08:00