Commit Graph

559 Commits

Author SHA1 Message Date
vegorov-rbx e562596bb8
Luau Recap: October 2021 (#92)
* Draft for October post

* Rebuild pages

* Apply suggestions from code review

Co-authored-by: dcope-rbx <91100513+dcope-rbx@users.noreply.github.com>

* Update 2021-10-31-luau-recap-october-2021.md

Add optimizations

* Remove unfinished section

Co-authored-by: dcope-rbx <91100513+dcope-rbx@users.noreply.github.com>
Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
2021-10-29 11:37:43 -07:00
dcope-rbx c1654e34eb
Fixed doc issue that was unaddressed in a previous code review (#93) 2021-10-29 09:48:58 -07:00
dcope-rbx 1b38e3c8f8
Added syntax documentation for if expressions (#91)
* Added syntax documentation for if expressions
2021-10-28 13:44:04 -07:00
vegorov-rbx 0fd38fd765
RFC: Type alias type packs (#83) 2021-10-27 11:53:45 -07:00
Alan Jeffrey 59c0492419
RFC: Write-only properties (#79)
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
2021-10-27 11:42:17 -07:00
Alan Jeffrey f3a248d1a9
Remove warning about generic functions being disabled (#90) 2021-10-27 11:24:47 -05:00
Arseny Kapoulkine 2341b5014e
Update compatibility.md
Given the new RFC we clearly don't think coroutine.close is never going to happen :)
2021-10-26 17:19:37 -07:00
Arseny Kapoulkine 1ec7be600c
docs: Create library.md (#87)
Full documentation for the standard library, written from scratch by looking at the source code - so hopefully this is reasonably correct/precise.

Some of the function descriptions are probably too concise to be easily understandable - we can flesh this out in the future.

Some of the type specifications aren't using valid Luau syntax; in particular, I've used "function" or "table" in a few places as a human-friendly notion that any function/table suffices, and the iterator functions just say that they return <iterator> without being specific as to what the signature of the generator is.
2021-10-19 13:54:44 -07:00
Alan Jeffrey 628d7d9fcd
RFC: Read-only properties (#77)
* Added rfcs/property-readonly.md

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
2021-10-11 09:58:01 -05:00
Arseny Kapoulkine d42dba9c95
RFC: Configure analysis via .luaurc (#47) 2021-10-07 22:41:56 -07:00
Arseny Kapoulkine c54a8c81f6
Update function-table-freeze.md
Fix typos and formatting
2021-10-07 17:51:08 -07:00
Alan Jeffrey f8fb1016dc
RFC: Unsealed table assignment creates an optional property (#73)
* Added rfcs/unsealed-table-assign-optional-property.md

Co-authored-by: Lily Brown <lily@lily.fyi>
2021-10-05 19:22:38 -05:00
Alan Jeffrey 4b02be4e0e
September 2021 Luau Recap (#81)
* Added the September Luau Recap

Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
2021-09-29 15:05:14 -05:00
Alan Jeffrey 43b803b267
RFC: Recursive type restriction (#68)
Co-authored-by: Alan Jeffrey <403333+asajeffrey@users.noreply.github.com>
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
2021-09-27 10:49:03 -07:00
Arseny Kapoulkine 08bdb5b202
Rename syntax-type-ascription-2.md to syntax-type-ascription-bidi.md 2021-09-23 11:18:02 -07:00
Arseny Kapoulkine 1788de56a0
Update syntax-if-expression.md
Add a note that only one expression is evaluated in `if-expr`.
2021-09-22 14:08:37 -07:00
Alan Jeffrey 341afd9f63
Slides for HATRA talk (#74)
* Added HATRA talk slides

Co-authored-by: Andy Friesen <afriesen@roblox.com>
2021-09-22 13:00:41 -05:00
Alan Jeffrey 2834eece1b
Added copyright ownership statement to the HATRA paper (#75) 2021-09-22 12:31:14 -05:00
Alan Jeffrey 0dc922b690
Responding to referee comments in the HATRA paper (#70)
* Responding to referee comments for the HATRA paper
2021-09-20 17:44:34 -05:00
Arseny Kapoulkine ae1c104fd1
Update performance.md (#71)
Add some information about the new GC pacer

Co-authored-by: Alan Jeffrey <403333+asajeffrey@users.noreply.github.com>
2021-09-15 16:19:45 -07:00
Arseny Kapoulkine 4e6ca2531b
Update performance.md (#69)
Remove placeholder sections for performance optimizations - we'll just add individual optimizations to this document as we deploy them.
2021-09-15 16:07:16 -07:00
Andy Friesen d35b2a65c9
RFC: Update type assertions to permit conversion between any two related types (#56)
Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
2021-09-14 11:55:20 -07:00
vegorov-rbx c738ddc1f0
Luau Recap: August 2021 (#64)
* August post is ready

* Fixes

* Rebuild pages

* Apply suggestions from code review

Co-authored-by: Alan Jeffrey <403333+asajeffrey@users.noreply.github.com>

* Update docs/_posts/2021-08-31-luau-recap-august-2021.md

Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>

* Fix typo

* Mention additional optimizations

* Fix link

Co-authored-by: Alan Jeffrey <403333+asajeffrey@users.noreply.github.com>
Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
2021-08-31 22:16:33 +03:00
Arseny Kapoulkine ad436994ba
Update performance.md (#65)
Call out table capacity prediction
2021-08-31 07:28:49 -07:00
Arseny Kapoulkine bb8870a1d4
Update compatibility.md (#63)
Add a note about `pcall` - really the C limit is universal but it will most often be hit during either pcall or coroutine.resume.
2021-08-30 10:31:52 -07:00
vegorov-rbx 10a407226b
RFC: Default type alias type parameters (#61)
* RFC: Default type alias type parameters

* Update the motivating example to match actual motivating example

* Resolved review comments

* improved motivation for the feature and noted additional languages with this feature
* fixed terminology between 'argument' and 'parameter'
* brought back support for default type pack parameter values
* removed alternative syntax and described the decision between ':' and '=' in the design section
* fixed drawback text and provided an example

* Remove return type pack annotation from allowed type pack default values,type annotation syntax doesn't allow that to be stand-alone

* Generic type pack has to be referenced by generic type pack name (with ...)
2021-08-20 20:26:37 +03:00
Arseny Kapoulkine fcbbdcc05e
Update README.md (#62)
Change link from .github.io to .org
2021-08-09 18:51:41 -07:00
Arseny Kapoulkine 81cddbd82c
Update lint.md (#58)
Add documentation for DuplicateLocal
2021-08-04 15:24:25 -07:00
Lily Brown c42e311bcc
HATRA '21 paper corrections (#57)
A large number of changes to the HATRA '21 position paper. We've abandoned the 4pp limit, which allows us to add more detail to some sections, and use more appropriate wording throughout the paper. A rough changelog:

* Numerous wording tweaks
* Removed `\cite{???}`
* Added type inference section
* Introduction beefed up
* Abstract slightly tweaked

Co-authored-by: Alan Jeffrey <403333+asajeffrey@users.noreply.github.com>
2021-08-04 13:50:44 -07:00
Matthew Pagan 9cc9934370
fix: change variable asserted in documentation (#60) 2021-08-04 09:25:01 -07:00
vegorov-rbx e9db7cd1dc
Luau Recap: July 2021 (#59)
* July post is ready

* Trigger a build

* Trigger a build

* Added a paragraph for 'DuplicateConditions' lint

* Apply suggestions from code review

Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>

* Fix mixed tabs and spaces

Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
2021-07-30 19:52:21 +03:00
Arseny Kapoulkine 1f548d4753
Update lint.md (#54)
Add documentation for the upcoming DuplicateCondition lint
2021-07-21 16:13:04 -07:00
Alan Jeffrey 7c7eb800f5
Add a position paper about the goals of Luau (#55)
Added a position paper on Luau for submission to HATRA 2021

Co-authored-by: Lily Brown <lbrown@roblox.com>
Co-authored-by: Andy Friesen <afriesen@roblox.com>
2021-07-20 13:41:04 -05:00
vegorov-rbx 01d9f8daf9
Luau Recap: June 2021 (#53)
* Template for the June post

* June post is ready

* Fixed post date

* Added a few examples

* Add another equality operator

* Update docs/_posts/2021-06-30-luau-recap-june-2021.md

Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>

* Note the limitation of current constraint resolver

Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
2021-07-07 19:45:01 +03:00
Arseny Kapoulkine bf17b6447a
Update lint.md (#52)
* Update lint.md

Add documentation for DeprecatedApi (live) and TableOperations (ships on July 7th)

* Update lint.md

Shorten line a bit
2021-07-06 09:06:51 -07:00
Arseny Kapoulkine 7e71295c27
RFC: Deprecate getfenv/setfenv (#51) 2021-06-24 23:02:57 -07:00
vegorov-rbx 9a4487f3e9
RFC: nil-forgiving operator (#48)
Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>
2021-06-23 12:58:00 -07:00
Arseny Kapoulkine c8af786b10
Update compatibility.md
We decided that we can't enforce strict limits for insert/remove based on analysis of Roblox games
2021-06-15 19:05:27 -07:00
Arseny Kapoulkine b439c9fcdc
Update performance.md
Restore the original sentence with tweaks; this seems like better wording since it highlights the importance of knowing the field name at compile time, no matter the notation.
2021-06-14 18:54:47 -07:00
Arseny Kapoulkine 40a175499e
Update performance.md
Remove outdated statement about table["field"] since we optimize it now the same way as table.field.
2021-06-14 10:53:26 -07:00
Arseny Kapoulkine 0fdf8824f1
Update performance.md (#50)
Add a section about vectors and libraries
2021-06-11 14:10:55 -07:00
Arseny Kapoulkine 50c22abae0
Update syntax.md (#46)
Add documentation for named arguments in function types.
2021-06-02 13:19:46 -07:00
Arseny Kapoulkine b20601af89
Update lint.md (#44)
Update FunctionUnused and ImportUnused following internal changes that make it possible to suppress the warning using _
2021-06-02 12:49:35 -07:00
Arseny Kapoulkine b490373454
Update syntax.md (#45)
Add information about type ascription syntax
2021-06-02 12:14:24 -07:00
vegorov-rbx 2a29ba1538
Update 2021-05-31-luau-recap-may-2021.md 2021-06-02 19:50:57 +03:00
vegorov-rbx 5c7a981866
Luau Recap: May 2021 (#42)
* Added May 2021 recap post

* Added missing items and fixed confusing function declaration example

* Apply suggestions from code review

Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>

* Small fix

Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
2021-06-02 13:19:15 +03:00
Arseny Kapoulkine e8a58ea42f
Update if-expr RFC with mid-block return interaction (#43)
We don't have mid-block return support yet and it's not clear if we will due to similar grammatical issues with this wrt function calls, but noting this for completeness (thanks @alexmccord for bringing this up)
2021-06-01 15:45:43 -07:00
vegorov-rbx 7ab5a3a2db
Mark 'Named Function Type Arguments' status as implemented (#41) 2021-05-31 21:07:37 +03:00
Lily Brown 43d606fad4
RFC: Sealed table subtyping (#38) 2021-05-31 10:39:09 -07:00
Arseny Kapoulkine fff104b439
Rename linting pass to match internal changes
The name is cleaner and more correct
2021-05-30 11:55:52 -07:00
Andy Friesen fc4cfede58
Document how to actually use an exported type from another module. (#40) 2021-05-28 10:31:47 -07:00
Alexander McCord cc399fa98d
RFC: Singleton types (#37)
Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
2021-05-28 09:13:44 -07:00
Arseny Kapoulkine b2b0c33b5e Update CNAME 2021-05-27 19:00:09 -07:00
Arseny Kapoulkine a4fe638b17 Create CNAME 2021-05-27 18:52:43 -07:00
Arseny Kapoulkine d6ca8b2ce3 Delete CNAME 2021-05-27 18:33:38 -07:00
Arseny Kapoulkine d3b551e266 Create CNAME 2021-05-27 18:32:05 -07:00
Arseny Kapoulkine d40107dc60
Add RFC status fields (#39)
It seems more consistent and unambiguous if we mark RFCs as being
implemented when the implementation lands instead of expecting to
cross-reference documentation. That also makes it easier for us to flag
stale RFCs.
2021-05-17 18:19:49 -07:00
Alexander McCord 8956c7448e
RFC: Allow method call on string literals (#34) 2021-05-17 16:41:55 -07:00
vegorov-rbx 0f1f6609b1
RFC: Named Function Type Arguments (#36)
Introduces syntax for optional names of function type arguments.
2021-05-13 09:02:51 -07:00
Alan Jeffrey 674846e7cf
Generic Functions RFC (#33)
* Added generic functions RFC

Co-authored-by: Tiffany Bennett <tiffany@tiffnix.com>
2021-05-12 10:48:10 -05:00
Arseny Kapoulkine 8091a330f5
Update TEMPLATE.md
Change the title to use expected Title case.
2021-05-06 19:29:16 -07:00
Arseny Kapoulkine fb67f5760c
Delete assert-return RFC
(this analysis should have been done before the RFC but the thought never crossed my mind)

There's 63K assertions in all luarocks repositories combined. Out of this, around ~600 assertions would be broken as a result of this change. This is ~1% which is pretty uncomfortable (I was hoping for a couple of odd unit tests) - as such this RFC is going to get closed. We will maintain the current behavior of assert and try to adapt type checker to be reasonably useful instead.

The common thread between all of these cases (many of them target custom APIs although some target core APIs like string.match) is that assert is used together with a function that either returns nil (for errors), or multiple arguments. Under these conditions multi-arg assert is useful.

A couple examples:

```
out_r, out_w = assert(unix.pipe())
local header, body = assert(data:match "(.-\r\n)\r\n(.*)")
local z85_secret_key, z85_public_key = assert(zmq.curve_keypair())
local _, r = assert(coroutine.resume(co, msg))
```
2021-05-04 22:15:14 -07:00
Arseny Kapoulkine cbc99c3222
Update syntax.md
Fix typo: `nunber` -> `number`

Fixes #35.
2021-05-04 18:57:48 -07:00
Arseny Kapoulkine 26be211e5d
Update README.md
Emphasize the rfc label even more.
2021-05-04 16:23:45 -07:00
Arseny Kapoulkine a6844a8247 Add emphasis to use of label. 2021-05-04 00:31:30 -07:00
Arseny Kapoulkine ba2138ce10
Add more accepted RFCs. (#32)
This finishes the set of fully baked/accepted RFCs; 3 more proposals have been accepted but not implemented yet and will be submitted separately as actual RFCs.
2021-05-04 00:13:57 -07:00
Arseny Kapoulkine e2176e35e1
Establish an RFC process (#29)
This is going to apply to language and core library changes and will supplant the internal Roblox API proposal process for Luau only.
2021-05-03 18:52:43 -07:00
vegorov-rbx b8627707c4
Luau Recap April 2021 (#28)
* Base for the April post

* Finished April 2021 recap post

* Removed features that are not enabled yet (bye, type-checking section)

* Update docs/_posts/2021-04-30-luau-recap-april-2021.md

Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>

* Update docs/_posts/2021-04-30-luau-recap-april-2021.md

Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>

* Update docs/_posts/2021-04-30-luau-recap-april-2021.md

Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>

* Added 'Coming Soon' for type refinements

Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
2021-05-03 23:05:05 +03:00
Arseny Kapoulkine 93fb768a64
Update compatibility.md
Add a note about os.time
2021-04-26 14:13:20 -07:00
Arseny Kapoulkine 258966863c
Update compatibility.md (#27)
Call out the upcoming change to `print` and slightly reword a couple of rows. Also add a list of differences from 5.x that was previously requested (the list is likely incomplete)
2021-04-21 10:42:27 -07:00
Andy Friesen bf63d29c9a
Document the duplicate function lint (#26) 2021-04-14 14:29:28 -07:00
canada 149e687d73
Add missing bracket (#25) 2021-04-12 08:44:43 -07:00
Arseny Kapoulkine 51758557e6
Update performance.md
Correct performance note re: table.insert after a recent update.

Fixes #23.
2021-04-02 22:37:23 -07:00
Arseny Kapoulkine 094d5a0e09
Update 2021-03-29-luau-recap-march-2021.md 2021-03-31 20:13:19 -07:00
Arseny Kapoulkine 8d712c47b6
Update typecheck.md 2021-03-31 20:12:43 -07:00
Andy Friesen 2d641976ee
Clip references to Array<T> (#21)
Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
2021-03-31 14:24:44 -07:00
Alan Jeffrey 0ab29a02e2
Add Atom feed (#22) 2021-03-31 14:24:26 -07:00
Alan Jeffrey 0b6977554b
Added section on generic functions (#20) 2021-03-31 12:53:21 -07:00
Alan Jeffrey 73b34e15c0
Luau Recap March 2021 (#19)
Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
2021-03-30 16:45:51 -07:00
ccuser44 e051e33482
Removed incorrect info (#14)
* Removed incorrect info

The manual says Luau does not support hexadecimal \0x, Unicode \u and \z
when this clearly isn't the case.
This is also quite confusing as just a bit below it says it does support them.

Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
2021-03-30 15:54:58 -07:00
Max ed845e6924
Less ambiguity to what 'SECRET TOOL' is? (#18)
Remove information about internal tooling altogether

Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
2021-03-30 15:53:31 -07:00
Lily Brown a124f53628
Document variadic types (#17) 2021-03-26 16:07:34 -07:00
Alexander McCord 5f49e3fd95
Add missing docs for multiple returns. (#16) 2021-03-23 12:58:16 -07:00
Arseny Kapoulkine 98494e7ee8 Replace logo and add it as a favicon & actual logo
Thanks to Brad Sharp for the design.
2021-03-16 20:30:31 -07:00
Arseny Kapoulkine 0802697a87
Update navigation.yml
Add compatibility link
2021-03-15 21:56:50 -07:00
Arseny Kapoulkine ab913e5bc5
Update compatibility page
This brings the page in line with other pages by adding TOC, removing duplicate header and moving it to the correct location in the tree.
2021-03-15 21:56:18 -07:00
tacheometry 710547df83
Fix paranthesis (#13) 2021-03-14 16:29:46 -07:00
Alan Jeffrey 6c709f8e65
Added News section (#12)
* Add outline News section

* First draft Feb 2021 Recap

* Fixed image links

* Removed type definition files and refinements

* Added Luau Type Checking Release

* Added Luau Type Checking Beta

* Added Luau Recap August 2020

* Added Luau Recap June 2020

* Fixed code typos

* Formatting

* Removed mention of class declarations

* Rename 2020-06-20-luar-recap-june-2020.md to 2020-06-20-luau-recap-june-2020.md

* Add luau-recap-feb2021-benchmark.png

* Add luau-recap-february-2021-benchmark.png

* Delete luau-recap-feb2021-benchmark.png

* Added some more miscellaneous improvements

* Update 2021-03-01-luau-recap-february-2021.md

Expand on perf. improvements and mention table.clear.

* Update 2021-03-01-luau-recap-february-2021.md

* Update 2021-03-01-luau-recap-february-2021.md

* Removed the navigation link to Home as it didn't fit on mobile

* Removed unneeded file

* Added Luau Recap May 2020

* Added Debugger improvements

* Added Luau Recap Feb 2020

* Added Luau Recap Nov 2019

* Added a debugger screenshot

* Added image assets

Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
2021-03-02 12:45:21 -08:00
AtomicOperation d04a41fcff
Change to minimal-mistakes theme (#11)
Use minimal-mistakes theme. Add a splash front page and a getting started page.
2021-02-12 12:26:08 -08:00
Kyle 41564d281c
docs: fix minor typos (#8) 2021-01-27 19:26:39 -08:00
Arseny Kapoulkine 44cdeb07cc
Update lint.md
Add DeadLocal warning description
2021-01-27 17:34:20 -08:00
Alexander 93f9e5e824
Minor improvements in type checking docs (#9)
It was somewhat outdated from the current Luau world. Some changes to fix that problem.

1. Global assignments are now allowed in nonstrict mode.
2. The example that assigns to `x` from the argument `y` in the function `f` was needlessly complicated. I elected to delete it.
3. Require tracing docs shouldn't need to explain the three possible outcomes.
2021-01-20 11:07:04 -08:00
Arseny Kapoulkine 5e069fa04a
Update limited-terms-of-use.md 2020-12-14 23:22:56 -08:00
Arseny Kapoulkine 83d6132e1d
Update limited-terms-of-use.md 2020-12-14 16:34:01 -08:00
rblanckaert 8f5ab4c47c
Create limited-terms-of-use.md (#7) 2020-12-07 12:01:37 -08:00
Arseny Kapoulkine ffa3c9fe7a
Update index.md (#6)
Add casing and pronunciation guide
2020-12-02 15:57:25 -08:00
Arseny Kapoulkine 43fed897c1
Update typecheck.md 2020-11-02 12:06:08 -08:00
Arseny Kapoulkine 9d4f338473
Update syntax.md
Add short-hand array like table syntax.
2020-10-20 17:47:48 -07:00
Arseny Kapoulkine ad9f2ac5d0
Update typecheck.md
Add short hand array like type syntax
2020-10-20 17:46:29 -07:00
Arseny Kapoulkine 98402c3798
Update performance.md 2020-10-07 12:07:13 -07:00