Commit Graph

565 Commits

Author SHA1 Message Date
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
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
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