Commit graph

152 commits

Author SHA1 Message Date
ariel
12a39c3fdb
Relax the recursive type restriction. (#92)
* Relax the recursive type restriction.

* more alternatives

* Update description of behavior pre-restriction.
2025-03-05 11:58:59 -08:00
Alexander McCord
e78e855dc6
RFC: Negation types (#29) 2025-02-24 09:07:50 -08:00
vegorov-rbx
0280f4fbf2
Update implementation status of various RFCs (#102) 2025-02-21 09:34:56 -08:00
boyned//Kampfkarren
d9b440fbdd
RFC: Explicit type parameter instantiation (#90) 2025-02-21 08:24:39 -08:00
ffrostfall
84f9815c32
RFC: Metatable type functions (#69)
* Create metatable type functions RFC

* Add reference to metatable-type-syntax

* Turn lua into luau

Co-authored-by: ariel <aweiss@hey.com>

* Turn lua into luau

Co-authored-by: ariel <aweiss@hey.com>

* Turn lua into luau

Co-authored-by: ariel <aweiss@hey.com>

* Turn lua into luau

Co-authored-by: ariel <aweiss@hey.com>

* Turn lua into luau

Co-authored-by: ariel <aweiss@hey.com>

* Fix typeof() usage

* Specify behavior for getmetatable

* Specify 2nd argument failure case for setmetatable

* Update docs/metatable-type-functions.md

Co-authored-by: ariel <aweiss@hey.com>

* Update docs/metatable-type-functions.md

Co-authored-by: ariel <aweiss@hey.com>

* Fix wrongly sectioned failure case for setmetatable

* Update docs/metatable-type-functions.md

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* Update docs/metatable-type-functions.md

Co-authored-by: ariel <aweiss@hey.com>

* Specify additional failure case for setmetatable

---------

Co-authored-by: ffrostfall <80861876+ffrostflame@users.noreply.github.com>
Co-authored-by: ariel <aweiss@hey.com>
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
2025-02-04 15:59:39 -08:00
alicesaidhi
1133124f9c
Update read-only and write-only syntax (#96) 2025-01-29 07:27:09 -08:00
Varun Saini
6c47f8d595
Update old require-by-string RFCs (#68) 2025-01-24 14:29:11 -08:00
Varun Saini
8f6bee71f2
Add 'Status: Implemented' to require RFCs (#62) 2025-01-24 14:25:00 -08:00
Ketasaja
afb9f42e19
Fix table.newtype argument (#93) 2025-01-24 14:05:10 -08:00
vegorov-rbx
ff86da0e53
RFC: Support for Generic Types and Packs in User-Defined Type Functions (#85)
* RFC: Support for Generic Types and Packs in User-Defined Type Functions

* Language

* Wording improvements

* Apply suggestions from code review

Co-authored-by: ariel <aaronweiss@roblox.com>

* Note about representing packs as 'type' with a separate tag.

---------

Co-authored-by: ariel <aaronweiss@roblox.com>
2025-01-08 10:45:40 -08:00
Arseny Kapoulkine
b2326e0087
RFC: Add function math.lerp (#86)
* Add function math.lerp

* Clarify which variant the sentence is referring to.

* Some text fixes

---------

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
2025-01-07 04:29:12 -08:00
vegorov-rbx
2766e0411f
RFC: buffer.readbits/writebits (#18)
* RFC: buffer.readbits/writebits

* Note about large offset
2024-12-13 18:00:17 -08:00
Petri Häkkinen
ece0dd1c15
Add RFC for 2-component vector constructor (#74)
* Add RFC for 2-component vector constructor

* Remove implementation details
2024-12-09 11:15:39 -08:00
vegorov-rbx
5c26c39cf0
RFC: Support for thread and buffer Types in User-Defined Type Functions (#77) 2024-12-03 04:50:51 -08:00
aaron
03608c7519
move mascot.png to fix website (#61) 2024-10-21 15:31:44 -07:00
Brad Sharp
1dfbd958f9
Update CNAME 2024-10-21 15:15:38 -07:00
MagmaBurnsV
010be579d9
Add math.map to the standard library (#55)
* Add `math.map` to the standard library

* Update function-math-map.md
2024-10-16 10:35:27 -07:00
Junseo Yoo
a9f1409fcc
Fix table formatting in user-defined-type-functions.md (#59)
* Convert .md tables to .html tables

* Revert "Convert .md tables to .html tables"

This reverts commit cff9ba7827.

* Remove HTML blocks
2024-10-10 11:00:02 -07:00
Varun Saini
79c722717f
RFC: Amended Require Syntax and Resolution Semantics (#56)
* Add amended-alias-resolution.md

* Move alternatives into main design section for discussion

* Remove certain references to ../

Relative path parenting must already be done explicitly and is not up for discussion.

* Clarify that (3a) supports implicit relative paths

* Link old implementations to these approaches

* Add autocomplete details to (1c)

* Move approaches (2), (3a), (3b) to Alternatives

* Remove references to ../

* Add details about (1c) being compatible with (1a/b)

* Remove paths

* Propose approach (1c)

* Remove implicit ordering for file matching (error)

* Nit: "require statements" -> "require expressions"
2024-09-25 15:01:16 -07:00
aaron
b2cdcb7ef3
Adjust signature for properties method in user-defined type functions RFC. (#57) 2024-09-23 14:01:45 -07:00
ffrostfall
549e468c6d
RFC: Vector library (#34)
* Vector library RFC

* cut out irrelevant information

* small edits + vector(x, y, z) over vector.create

* Fix formatting

* Additional formatting

* corrections to function types + special syntax

* feedback

* Additional functions, primitive type, constants

* Update return types

* Make max and min functions clearer

* Clarify min and max functions

* Change `vector.unit` to be `vector.normalized`

* Update normalize function

* Switch norm and normalized again

* clarify vector.normalized

* small fixes

* Make the vector librarys functions align more with their math lib equivalents, and add functions that exist in the math lib that would also be useful for vectors

* Update vector-library.md

* fix typo

* remove ncg stuff, add buffer stuff

* Apply suggestions from code review

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* add axis to angle function

* Update vector-library.md

* Update docs/vector-library.md

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* Update docs/vector-library.md

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* Update docs/vector-library.md

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* Update docs/vector-library.md

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* Update docs/vector-library.md

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* Update docs/vector-library.md

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* Update docs/vector-library.md

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* Update docs/vector-library.md

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* Update docs/vector-library.md

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* Update docs/vector-library.md

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* Fix typo

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

* typo fix

Co-authored-by: Varun Saini <61795485+vrn-sn@users.noreply.github.com>

* typo fix

Co-authored-by: Varun Saini <61795485+vrn-sn@users.noreply.github.com>

* Fix typo

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

---------

Co-authored-by: ffrostfall <80861876+ffrostflame@users.noreply.github.com>
Co-authored-by: Jack <85714123+jackdotink@users.noreply.github.com>
Co-authored-by: Kalrnlo <62822174+kalrnlo@users.noreply.github.com>
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
Co-authored-by: dcope-rbx <91100513+dcope-rbx@users.noreply.github.com>
Co-authored-by: Varun Saini <61795485+vrn-sn@users.noreply.github.com>
2024-09-11 09:41:12 -07:00
Junseo Yoo
b344467d6a
RFC: User Defined Type Functions (#45)
* Initial commit for UDTF

* library names to luacase

* table runtime representation still depends on VM

* addressing comment: boolean is equivalent to true | false

* getname() should return string not table

* Added a section about type function type checking as one of future works

* type functions can call other type functions but not regular functions

* user configurable timeout added

* Type functions can not refer to outer scopes

* lType -> typelib

* print to warn; error/return nothing to fail reduction

* removed getname() as there aren't real usecases

* fix typos in method names

* Starlark approach without execution limit

* big revision on library methods, reason for using userdata, illegal constructs in type functions; need to add support for generic types and list of supported libraries/globals

* colon to invoke methods

* comment: ~ to not

* Added indexer methods for Class types

* using colons instead of periods to invoke method calls

* added globals/libraries to a list of illegal constructs

* revising typelib library and method descriptions

* renaming methods, overloading __eq __le __newindex, metatable as representation of tables

* small fix to reflect table method name change to class method names

* make nil, unknown, never, any an instance attribute of typelib; merge getindextype/getindexresulttype into one function

* Removed overloading metamethods for now

* added tbl:getprop(key) to obtain a single value

* addprop(key, ty.nil) != delprop(key)

* merge addprop() and delprop() into one

* typelib.nil clashes with the reserved keyword, so changed to typelib.niltype

* == operator overridden with __eq

* Fixed rawget example

* Added parameters to newtable function

* Added parameters to newfunction function

* Revised typelib.function

* fix typelib.newfunction

* Clarification to typelib.newfunction methods

* fix arguments of Function.setparameters and Function.setreturns

* Error for returning non-typelib instance

* added parameters to typelib.newmetatable

* Delete String.getmetatable()

* information about pass by reference and typelib.copy() method

* moved stringle, boolean, number to be an instance attribute of typelib

* Update docs/user-defined-type-functions.md

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* remove print() for first iteration

* removed typelib.is*() and added typelib.type() instead

* Update docs/user-defined-type-functions.md

Co-authored-by: James <jamesramsauer@gmail.com>

* Update docs/user-defined-type-functions.md

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

* remove metatable from type

* merge newmetatable with newfunction

* some revisions + typelib->type

* change typelib.type() to :is(...)

* big revision with new information, features, supported methods, list of available globals

* better example for long running type functions

* combine getstringsingleton, getbooleansingleton

* optional arguments does not mean you don't need to write it

* forgot to finish my sentence

Co-authored-by: aaron <aweiss@hey.com>

* add information about type functions not being able to be exported

* Forgot string and utf8 library

* Add a note about increasing the list of available globals/libraries:

* Make a big edit pass over the RFC

* Update user-defined-type-functions.md

* We'll call the library `types`, not `type`.

* Opinionatedly clean up the types API.

* Take into account read/write properties

* Update examples to match revised API

* Update docs/user-defined-type-functions.md

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* Update docs/user-defined-type-functions.md

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* Update docs/user-defined-type-functions.md

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* Update docs/user-defined-type-functions.md

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* Cleaning up the API a bit more.

* Restructuring the API reference a bit.

* Fix typo with type signature

* Add missing code blocks

* Update docs/user-defined-type-functions.md

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* Add a small paragraph clarifying the scoping and shadowing rules being the same as type aliases

---------

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
Co-authored-by: James <jamesramsauer@gmail.com>
Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>
Co-authored-by: aaron <aweiss@hey.com>
Co-authored-by: aaron <aaronweiss@roblox.com>
2024-08-28 15:59:57 -07:00
dibrinsofor
1486302eff
RFC: No Support for Function Inlining (#49)
* init file

Signed-off-by: Dibri Nsofor <dnsofor@roblox.com>

* setup outline

Signed-off-by: Dibri Nsofor <dnsofor@roblox.com>

* first draft, needs work

Signed-off-by: Dibri Nsofor <dnsofor@roblox.com>

* removed conf link

Signed-off-by: Dibri Nsofor <dnsofor@roblox.com>

* minor improvements

Signed-off-by: Dibri Nsofor <dnsofor@roblox.com>

* minor improvements

Signed-off-by: Dibri Nsofor <dnsofor@roblox.com>

* corrected register, cleaned up typos and comments

Signed-off-by: Dibri Nsofor <dnsofor@roblox.com>

* removed inaccurate text

Signed-off-by: Dibri Nsofor <dnsofor@roblox.com>

---------

Signed-off-by: Dibri Nsofor <dnsofor@roblox.com>
2024-08-06 11:02:43 -07:00
Aviral Goel
42b12b9540
RFC: Deprecated Attribute for Functions (#48)
* RFC: Deprecated Attribute for Functions

* Minor fixes.

* Apply review suggestions and fix text.

* Add methods

* Mention methods and fix text

* Alex

* upto is not a word :mindblown:

* Add example

* Update docs/syntax-attribute-functions-deprecated.md

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

* Update docs/syntax-attribute-functions-deprecated.md

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

* Add example for properties

* Update docs/syntax-attribute-functions-deprecated.md

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* Update docs/syntax-attribute-functions-deprecated.md

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

---------

Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>
Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
2024-08-06 10:52:38 -07:00
Aviral Goel
b57bf48689
Add Implemented status for the "Native Attribute for Functions" RFC (#47) 2024-07-22 13:18:48 -07:00
Aviral Goel
65551e937a
Add Implemented status for the "Attributes (for Functions)" RFC (#46) 2024-07-22 13:18:37 -07:00
boyned//Kampfkarren
b14fb7798f
Reserve the dollar sign token (#44) 2024-06-25 08:15:36 -07:00
Junseo Yoo
766134c2d5
Renamed all instances of type operators to type functions (#43)
* Renamed all instances of type operators to type functions

* Update docs/index-type-operator.md

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

---------

Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>
2024-06-20 12:52:09 -07:00
Junseo Yoo
d473220d97
RFC: rawget Type Operator (#39)
* Initial commit for rawget

* rfc for rawget type operator completed

* Forgot .md

* Code blocks '''lua -> '''luau

* grammar fixes

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* Revised motivation section and design section

* Revised the drawbacks section

* Added a note about how this type operator doesn't work with class types

* Rephrased the summary

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* Redirect users to open-source Luau global functions

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* reword "runtime pair" to counterpart and update the link

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* grammar fix: "interactions" -> "interaction"

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

* Revised wording for motivation section

Co-authored-by: aaron <aweiss@hey.com>

* Added an article and broke up a sentence into two

Co-authored-by: aaron <aweiss@hey.com>

* Revided the reasoning for second drawback

* Update docs/rawget-type-operator.md

Co-authored-by: aaron <aweiss@hey.com>

---------

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
Co-authored-by: aaron <aweiss@hey.com>
2024-06-20 10:30:09 -07:00
Andy Friesen
f71a7c5578
Update README.md 2024-06-18 13:20:21 -07:00
menarulalam
70871e7516
Update new-require-by-string-semantics.md (#22)
Added init.luau part because it was missing. (Also reformatted it a bit).
2024-06-18 09:18:16 -07:00
Andy Friesen
7ad9975637 Unaccept syntax-key-destructuring.md 2024-06-14 14:15:26 -07:00
Junseo Yoo
c0f8ae51d9
RFC: index Type Operator (#38) 2024-06-10 18:22:56 -04:00
Aviral Goel
75d55ca4de
RFC: Native Attribute for Functions (#31)
* RFC for native attribute

* Use "comment directive" terminology instead of "hotcomment"

* Improve motivation and fix markdownlint errors.

* `@native` does not apply recursively

* Remove warning section
2024-06-10 09:30:19 -07:00
Alexander McCord
364425c518
Update codeblocks' language to use luau. (#40) 2024-06-10 08:15:36 -07:00
aaron
6002a16fc3
RFC: An official mascot for Luau (#37)
* mascot rfc

* typo

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

---------

Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>
2024-06-04 10:41:11 -07:00
Aviral Goel
21d3413d47
RFC: Function Attribute Parameters (#30)
* RFC for attribute parameters

* Use a relative path to generalize for GitHub and the RFC site.

* Add reason for allowing `nil` parameter

* Handle forward compatibility and clarify parsing behavior.

* Slight rewording

* Add discussion for handling `@checked`

* Update description for new syntax.

* Improve presentation, fix ebnf syntax, and address comments.

* Propose function-call syntax for attributes
2024-05-30 12:19:18 -07:00
boyned//Kampfkarren
7e35ba35a0
Key destructuring (local {.a, .b} = t) (#24)
* Key destructuring RFC

* Feedback + 'as'

* Mention evaluation amount

* Fix type

* Spell check

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>

---------

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
2024-05-20 20:00:51 -07:00
Alexander McCord
1ca8399b0d
Update attributes for functions RFC with more reasons against comments (#33)
Why not use comments? This is why.
2024-05-08 15:48:07 -07:00
Micah
d495078767
Attributes for functions (#10)
* Add intial draft of RFC

* Correct typo

* Update syntax-attributes-functions.md

---------

Co-authored-by: vegorov-rbx <75688451+vegorov-rbx@users.noreply.github.com>
2024-04-11 10:56:04 -07:00
Alexander McCord
e471d1f79d
Improved type checking rules of cast operator (#27) 2024-03-18 20:30:36 -07:00
Alexander McCord
2b28353611
Allow leading | and & in types (#25)
* Propose.

* Little grammar error.

* Semi-colons and language standardized indentations.

* n) -> n.
2024-03-11 11:06:25 -07:00
Alan Jeffrey
85b4d9a9d9
Add RFC for shared self (#5) 2024-01-23 09:47:08 -08:00
aaron
28e9cb8a70
RFC: keyof and rawkeyof type operators (#16) 2024-01-16 10:54:06 -08:00
Andy Friesen
8eea6768b4
RFC: Syntax for read- and write- access to properties (#15)
* RFC for property access modifier syntax.

Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>
2024-01-12 16:03:21 -08:00
vegorov-rbx
4d5453ce33
Status update on bit32.byteswap and buffer (#17) 2023-12-15 13:50:54 -08:00
menarulalam
2fa1e811e1
Updates to require by string RFCs (#14)
* Updated rfcs

* Removed @ requirement

* Updated alias

* Added a space

* Undid @ for paths
2023-12-12 13:56:02 -05:00
menarulalam
c6d0c6adb3
RFC: Require by string with aliases (#7)
* Create require-by-string-aliases.md

* Update require-by-string-aliases.md

* Update require-by-string-aliases.md

* Changed aliases to be case-insensitive + restricted the charset

* Update docs/require-by-string-aliases.md

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

* Update require-by-string-aliases.md to have @

* Include justification for alias name case insensitivity

* Fixed typo

* Removed duplicate section

---------

Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>
2023-11-30 14:02:44 -05:00
menarulalam
adda97e3a1
RFC: New Require By String Semantics (#6)
* Create require-by-string-relative-paths.md

* Update docs/require-by-string-relative-paths.md

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

* Enforced relative path formatting

* Rename require-by-string-relative-paths.md to new-require-by-string-semantics.md

* Update new-require-by-string-semantics.md

* Update docs/new-require-by-string-semantics.md

---------

Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>
2023-11-16 14:08:51 -08:00
Arseny Kapoulkine
99bbc8636e
Update behavior-stricter-utf8-library.md
Mark as implemented
2023-11-16 13:32:01 -08:00