XmiliaH
4ded555cc5
Prevent overflow in lua_newuserdatadtor ( #639 )
...
In case a large userdata size is passed to lua_newuserdatadtor it might overflow the size resulting in luaU_newudata actually allocating the object without a memory error. This will then result in overwriting part of the metatable pointer of the userdata.
This PR fixes this issue by checking for the overflow and in such cases pass a size value which will cause a memory error in luaU_newudata.
2022-08-16 15:32:48 -07:00
Arseny Kapoulkine
cd26f88d56
Update compatibility.md
...
Add NaN keys from Lua 5.2
2022-08-12 09:10:42 -07:00
Mactavsin
b7d126bf99
Fix lint.md formatting ( #637 )
...
This pull requests fixes a mistake in lint.md file that causes incorrect formatting of the text:
2022-08-12 07:14:38 -07:00
Arseny Kapoulkine
8b390a33aa
Update benchmark.yml
...
Switch to bench.json file so that bench-gcc is the only outlier, as everything else is built with clang.
2022-08-11 14:14:32 -07:00
Arseny Kapoulkine
f7d8ad0774
Sync to upstream/release/540 ( #635 )
...
Also adjust benchmark runs to use config=profile and run clang for all benchmarks + gcc for runtime
2022-08-11 14:01:33 -07:00
Arseny Kapoulkine
f1928ddade
Adjust benchmark runs to use config=profile and new file names
2022-08-11 13:48:35 -07:00
Arseny Kapoulkine
39bcf23cd6
Merge branch 'upstream' into merge
2022-08-11 13:44:03 -07:00
Arseny Kapoulkine
f21ba5d2f2
Merge branch 'master' into merge
2022-08-11 13:43:34 -07:00
Arseny Kapoulkine
106b269885
Sync to upstream/release/540
2022-08-11 13:42:54 -07:00
Arseny Kapoulkine
2c40b7661c
Update lint.md ( #634 )
...
Add documentation for IntegerParsing and ComparisonPrecedence lints
2022-08-11 08:42:31 -07:00
JohnnyMorganz
e15b0728be
Add autocomplete context to result ( #611 )
...
Closes #599
Not sure if these context definitions are distinct enough, but they work for my use cases.
I repurposed (a majority of) the existing unit tests for this, but if it should live in separate test cases let me know
---
* Add autocomplete context to result
* Update tests
* Remove comments
* Fix expression context issues
2022-08-10 13:04:08 -07:00
Arseny Kapoulkine
1b20fcd43c
Sync to upstream/release/539 ( #625 )
2022-08-04 15:35:33 -07:00
Arseny Kapoulkine
6d6fd12fee
Let's try this
2022-08-04 15:07:49 -07:00
Arseny Kapoulkine
5522631be4
Merge branch 'upstream' into merge
2022-08-04 14:30:15 -07:00
Arseny Kapoulkine
33190f84ae
Merge branch 'master' into merge
2022-08-04 14:27:40 -07:00
Arseny Kapoulkine
4a9cfd57a6
Sync to upstream/release/539
2022-08-04 14:27:28 -07:00
boyned//Kampfkarren
4658219df2
Add %* format specifier ( #619 )
...
RFC: https://github.com/Roblox/luau/pull/165
2022-08-04 07:22:16 -07:00
Arseny Kapoulkine
2c12badb5c
Update RFC status page
2022-08-03 15:40:57 -07:00
Arseny Kapoulkine
4692c55687
Mark never/unknown types RFC as implemented
2022-08-03 15:40:24 -07:00
Arseny Kapoulkine
b39fcc7e77
Mark __len RFC as implemented
2022-08-03 15:38:45 -07:00
Jay Kruer
b204981aca
Add Ctrl-C handling to the REPL ( #537 )
...
Co-authored-by: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
2022-08-02 09:32:22 -07:00
Arseny Kapoulkine
d3b566c258
Sync to upstream/release/538 ( #616 )
2022-07-28 21:24:07 -07:00
Arseny Kapoulkine
cdcd6fcbdb
Merge branch 'upstream' into merge
2022-07-28 20:46:02 -07:00
Arseny Kapoulkine
efcaf05010
Merge branch 'master' into merge
2022-07-28 20:45:57 -07:00
Arseny Kapoulkine
3202869acc
Sync to upstream/release/538
2022-07-28 20:41:13 -07:00
Alexander McCord
cb16555608
RFC: Disallow `name T` and `name(T)` in future syntactic extensions for type annotations ( #589 )
2022-07-28 14:48:17 -07:00
Alexander McCord
185370fa1d
RFC: Update the rules on string interpolation in light of feedback ( #615 )
...
We make four adjustments in this RFC:
1. `{{` is not allowed. This is likely a valid but poor attempt at escaping coming from C#, Rust, or Python.
2. We now allow `` `this` `` with zero interpolating expressions.
3. We now allow `` f `this` `` also.
4. Explicitly say that `` `this` `` and `` `this {that}` `` are not valid type annotation syntax.
2022-07-28 14:48:05 -07:00
JohnnyMorganz
2a6d1c03ac
Store AstExprFunction in astTypes for stats ( #612 )
2022-07-25 10:19:21 -07:00
Arseny Kapoulkine
12c5502027
Update performance.md
...
Update compiler performance metrics to account for O2 and expanding internal codebase
2022-07-22 10:35:03 -07:00
Arseny Kapoulkine
9be7f85be7
Update performance.md ( #608 )
...
Mention constant folding for builtins and remove the note about possibly doing inlining in the future because we do do it now!
2022-07-22 07:53:16 -07:00
Arseny Kapoulkine
b1cfaf5305
Sync to upstream/release/537 ( #607 )
2022-07-21 14:16:54 -07:00
Arseny Kapoulkine
2c0be898a1
Merge branch 'upstream' into merge
2022-07-21 13:37:02 -07:00
Arseny Kapoulkine
8f7a1c701b
Merge branch 'master' into merge
2022-07-21 13:36:59 -07:00
Arseny Kapoulkine
8e8ae0a01d
Sync to upstream/release/537
2022-07-21 13:36:41 -07:00
Arseny Kapoulkine
a824b05c9e
Update coverage report to codecov ( #606 )
...
Coveralls has had multiple stability issues in the recent while, and codecov seems much better maintained in general.
2022-07-20 15:12:30 -07:00
Arseny Kapoulkine
ea7a6c1260
Spell out RFC considerations for library functions more explicitly ( #603 )
...
When considering new standard library functions, we essentially need to strongly justify their existence over their implementation in Luau in user library code.
This PR attempts to provide a few axes of consideration; ideally new library functions tick many of the boxes, eg "used often + is more performant + clear unambiguous interface" is an ideal consideration for a library function, whereas if it's merely accelerating a single specific use case for a single application it's unlikely to be a good justification for inclusion.
2022-07-19 08:37:56 -07:00
Matthew Emery
96316c66dc
Documentation of round tie-breaking ( #602 )
...
* Update library.md
* Tie-breaking documentation for round
2022-07-18 12:36:23 -07:00
Arseny Kapoulkine
5b2e39c922
Sync to upstream/release/536 ( #592 )
2022-07-14 15:52:26 -07:00
Arseny Kapoulkine
092e70115e
Merge branch 'master' into merge
2022-07-14 15:40:07 -07:00
Arseny Kapoulkine
c321668dbc
Merge branch 'upstream' into merge
2022-07-14 15:40:05 -07:00
Arseny Kapoulkine
4bd651292d
Sync to upstream/release/536
2022-07-14 15:39:35 -07:00
Alex Orlenko
e87009f5b2
Add lua_setuserdatatag to update userdata tags ( #588 )
2022-07-14 12:00:37 -07:00
Andy Friesen
a934f742d8
June recap ( #583 )
2022-07-11 13:21:23 -07:00
Anaminus
6ad8239e32
Improve description of bit32.extract/replace. ( #585 )
...
Fix description incorrectly saying that parameter w specifies an upper range. w is actually a width. Proof:
print(bit32.extract(2^32-1, 3, 4)) -- prints 15, not 1.
Also indicate that the position is 0-based, and that the function will error if the selected range exceeds the allowed bounds.
2022-07-08 10:06:25 -07:00
Arseny Kapoulkine
120a7fab70
Merge branch 'merge'
2022-07-07 18:22:50 -07:00
Arseny Kapoulkine
506d971421
Sync to upstream/release/535 ( #584 )
2022-07-07 18:22:39 -07:00
Arseny Kapoulkine
42244b14df
Merge branch 'upstream' into merge
2022-07-07 18:08:06 -07:00
Arseny Kapoulkine
f9e76fc75c
Merge branch 'master' into merge
2022-07-07 18:07:30 -07:00
Arseny Kapoulkine
4a95f2201e
Sync to upstream/release/535
2022-07-07 18:05:31 -07:00
Allan N Jeremy
dbcd5fb28e
build: changed data output to be different for each os ( #581 )
...
- macos: data-macos-latest.json
- ubuntu: data-ubuntu-latest.json
- windows: data-windows-latest.json
2022-07-07 08:21:40 -07:00
Alan Jeffrey
a7ae439b0f
Document new table type features ( #567 )
2022-07-05 16:25:09 -05:00
Arseny Kapoulkine
42510bb5c8
Fix test after merging a stale PR ( #577 )
2022-07-05 11:36:33 -07:00
JohnnyMorganz
baa35117bd
Use syntheticName for stringified MetatableTypeVar ( #563 )
2022-07-05 09:19:54 -07:00
JohnnyMorganz
4d98a16ea8
Store resolved types in `astResolvedTypes` ( #574 )
2022-07-05 09:08:05 -07:00
JohnnyMorganz
6303ae30c4
Fix op used when stringifying AstExprIndexName ( #572 )
...
* Fix op used when stringifying AstExprIndexName
* Remove visualizeWithSelf
2022-07-05 08:59:09 -07:00
Arseny Kapoulkine
2460e38998
bench: Implement luau-analyze and luau --compile benchmarks ( #575 )
...
This change adds another file for benchmarking luau-analyze and sets up
benchmarks for both non-strict/strict modes for analysis and all three
optimization levels for compilation performance.
To avoid issues with race conditions on repository update we do all this
in the same job in benchmark.yml.
To be able to benchmark both modes from a single file, luau-analyze
gains --mode argument which allows to override the default typechecking
mode. Not sure if we'll want this to be a hard override on top of the
module-specified mode in the future, but this works for now.
2022-07-05 08:23:09 -07:00
Arseny Kapoulkine
48aa7a5162
bench: Implement first class support for callgrind ( #570 )
...
Since callgrind allows to control stats collection from the guest, this
allows us to reset the collection right before the benchmark starts.
This change exposes this to the benchmark runner and integrates
callgrind data parsing into bench.py, so that we can run bench.py with
--callgrind argument and, as long as the runner was built with callgrind
support, we get instruction counts from the run.
We convert instruction counts to seconds using 10G instructions/second
rate; there's no correct way to do this without simulating the full CPU
pipeline but it results in time units on a similar scale to real runs.
2022-07-04 11:13:07 -07:00
Arseny Kapoulkine
6467c855e8
Update compatibility.md ( #566 )
...
Update `__len` metamethod (pending the code change that implements this)
2022-06-30 17:07:56 -07:00
Arseny Kapoulkine
2daa6497a1
Sync to upstream/release/534 ( #569 )
2022-06-30 16:52:43 -07:00
Arseny Kapoulkine
065f2dac40
Merge branch 'upstream' into merge
2022-06-30 16:30:01 -07:00
Arseny Kapoulkine
3f716ea007
Merge branch 'master' into merge
2022-06-30 16:29:59 -07:00
Arseny Kapoulkine
8f040862b1
Sync to upstream/release/534
2022-06-30 16:29:02 -07:00
natteko
fc763650d3
Fix broken link in typecheck.md ( #568 )
...
Current link redirects to
https://luau-lang.org/typecheck#Roblox-types (notice the fragment)
which is effectively the same as https://luau-lang.org/typecheck
What the link *wants* to redirect to is
https://luau-lang.org/typecheck#roblox-types (notice the change in fragment)
which is the Roblox types segment of the document
2022-06-30 15:14:49 -07:00
Arseny Kapoulkine
ee82f1e997
Update sandbox.md
...
Since we don't have a formal proof, clarify that we don't have known bugs.
2022-06-28 23:13:13 -07:00
Arseny Kapoulkine
c29b803046
Update STATUS.md
...
Add __len metamethod
2022-06-28 09:08:12 -07:00
Arseny Kapoulkine
fd82e92628
RFC: Support `__len` metamethod for tables and `rawlen` function ( #536 )
2022-06-28 09:06:59 -07:00
Arseny Kapoulkine
13e50a9cac
Update library.md ( #564 )
...
Clarify behavior of shifts for out of range values.
2022-06-27 09:05:50 -07:00
Arseny Kapoulkine
4cd0443913
Update benchmark.yml
...
Cleaner names
2022-06-24 18:30:26 -07:00
Arseny Kapoulkine
9846a6c7b9
Update benchmark.yml
...
Remove all alert/comment functionality
2022-06-24 18:26:15 -07:00
Arseny Kapoulkine
224d35bc9e
Update benchmark.yml
...
Attempt to fix Windows and other builds
2022-06-24 18:16:12 -07:00
Allan N Jeremy
5e405b58b3
Added multi-os runners for benchmark & implemented luau analyze ( #542 )
2022-06-24 09:46:29 -07:00
Arseny Kapoulkine
e91d80ee25
Update compatibility.md ( #559 )
2022-06-23 18:56:19 -07:00
Arseny Kapoulkine
08ab7da4db
Sync to upstream/release/533 ( #560 )
2022-06-23 18:56:00 -07:00
Arseny Kapoulkine
4bf3ace2a6
Merge branch 'upstream' into merge
2022-06-23 18:45:15 -07:00
Arseny Kapoulkine
8544ca2c54
Merge branch 'master' into merge
2022-06-23 18:45:13 -07:00
Arseny Kapoulkine
6d14bdadf4
Sync to upstream/release/533
2022-06-23 18:44:07 -07:00
Arseny Kapoulkine
348ad4d417
Update STATUS.md
...
Add never and unknown types
2022-06-22 12:54:48 -07:00
Arseny Kapoulkine
1757234f01
Rename none-and-unknown-types.md to never-and-unknown-types.md
...
This makes the type names match.
2022-06-22 11:16:38 -07:00
Alan Jeffrey
778e62c8f7
RFC: never and unknown types ( #434 )
...
Co-authored-by: Alexander McCord <11488393+alexmccord@users.noreply.github.com>
2022-06-22 11:15:41 -07:00
Arseny Kapoulkine
ca32d1bf9d
Update library.md ( #555 )
...
Fix string.match and string.find type definitions
2022-06-22 09:27:05 -07:00
Qualadore
e0ac24d1ed
Correct string.find and string.match return types ( #554 )
2022-06-22 09:01:34 -07:00
Arseny Kapoulkine
ce9f4e23ae
Update performance.md ( #553 )
...
Document function inlining and loop unrolling.
2022-06-21 13:14:30 -07:00
Arseny Kapoulkine
f1b46f4b96
Sync to upstream/release/532 ( #545 )
2022-06-16 18:05:14 -07:00
Arseny Kapoulkine
fe6850556f
Merge branch 'upstream' into merge
2022-06-16 17:54:55 -07:00
Arseny Kapoulkine
88b3984711
Sync to upstream/release/532
2022-06-16 17:54:42 -07:00
Arseny Kapoulkine
1b99d566a9
Merge branch 'upstream' into merge
2022-06-16 17:53:05 -07:00
Arseny Kapoulkine
404653b4ca
Merge branch 'master' into merge
2022-06-16 17:53:02 -07:00
Arseny Kapoulkine
316838f253
Sync to upstream/release/531
2022-06-16 17:52:23 -07:00
Alan Jeffrey
948f678f93
Prototyping function overload resolution ( #508 )
2022-06-14 20:03:43 -07:00
Allan N Jeremy
da01056022
Added Luau Benchmark Workflows ( #530 )
2022-06-14 08:48:07 -07:00
JohnnyMorganz
c30ab0647b
Improve table stringifier when line breaks enabled ( #488 )
...
* Improve table stringifier when line breaks enabled
* Add FFlag
* Fix FFlags
2022-06-14 08:39:25 -07:00
rblanckaert
b066e4c8f8
0.531 ( #532 )
...
* Fix free Luau type being fully overwritten by 'any' and causing UAF
* Fix lua_clonefunction implementation replacing top instead of pushing
* Falsey values other than false can now narrow refinements
* Fix lua_getmetatable, lua_getfenv not waking thread up
* FIx a case where lua_objlen could push a new string without thread wakeup or GC
* Moved Luau math and bit32 definitions to definition file
* Improve Luau parse recovery of incorrect return type token
2022-06-10 09:58:21 -07:00
Rob Blanckaert
a6322ed36a
Merge branch 'upstream' into merge
2022-06-09 18:34:22 -07:00
Rodactor
7df9408851
Sync to origin/release/531
2022-06-09 18:31:12 -07:00
Rob Blanckaert
44a5cb6d52
Merge remote-tracking branch 'origin/master' into merge
2022-06-09 18:24:58 -07:00
Arseny Kapoulkine
ca5fbbfc24
Mark generalized iteration RFC as implemented
2022-06-09 10:18:29 -07:00
Arseny Kapoulkine
bcab792e0d
Update STATUS.md
...
Generalized iteration got implemented, safe indexing got dropped.
2022-06-09 10:18:03 -07:00
Arseny Kapoulkine
b8ef743721
RFC: Do not implement safe navigation operator ( #501 )
...
This meta-RFC proposes removing the previously accepted RFC on safe navigation operator. This is probably going to be disappointing but is the best course of action that reflects our ideals in language evolution.
See PR thread for rationale and discussion.
2022-06-09 10:03:37 -07:00
Petri Häkkinen
b44912cd20
Allow vector fastcall constructor to work with 3-4 arguments with 4-wide vectors ( #511 )
2022-06-09 09:41:52 -07:00
Daniel Nachun
9619f036ac
fix build with newer GCC ( #522 )
2022-06-06 15:52:55 -07:00