Commit graph

58 commits

Author SHA1 Message Date
Kampfkarren
657fa854eb Remove unused variable 2022-07-28 00:10:31 -07:00
Kampfkarren
dbf5064449 Change nextInterpolatedString return value 2022-07-27 23:43:25 -07:00
Kampfkarren
54734826e7 Use TempVector 2022-07-27 23:36:45 -07:00
Kampfkarren
efe3b7ca36 Bespoke error for interpolated string fails 2022-07-27 22:42:37 -07:00
Kampfkarren
63654211c6 Allow interpolated strings without expressions, add TODO test for failing interp strings as types 2022-07-27 22:12:27 -07:00
Kampfkarren
6e97add1ee Support un-interpolated strings 2022-07-27 18:10:06 -07:00
Kampfkarren
9918529641 Documentation for strings 2022-07-27 17:41:52 -07:00
Kampfkarren
2a41dca9d4 Avoid extra allocations 2022-07-27 17:13:44 -07:00
Kampfkarren
dadbd4cd47 FFlag off 2022-07-27 16:47:20 -07:00
Kampfkarren
c770cac964 auto cleanup 2022-07-27 16:43:49 -07:00
Kampfkarren
310adedc90 Optional ergonomics 2022-07-27 16:40:43 -07:00
Kampfkarren
8dcbebaa70 Remove backslashes 2022-07-27 16:36:05 -07:00
Kampfkarren
11787e8336 Bespoke error for interpolated string after call 2022-07-27 02:25:12 -07:00
Kampfkarren
591192c3e5 Fix location, Transpiler 2022-07-26 23:06:56 -07:00
Kampfkarren
aa9f9c371f Check end brace parse errors 2022-07-26 22:14:28 -07:00
Kampfkarren
36b0037145 FFlag 2022-07-26 20:40:37 -07:00
Kampfkarren
beb7ecceb1 Remove unneeded lexer APIs 2022-07-26 20:25:20 -07:00
Kampfkarren
ea01fe3b34 Remove outdated TODO 2022-07-26 20:22:17 -07:00
Kampfkarren
d4642f78ef Include grammar 2022-07-26 20:20:44 -07:00
Kampfkarren
12ca7c5bb0 Better error for constant 2022-07-26 19:48:17 -07:00
Kampfkarren
8e409efde8 Use the same error 2022-07-26 19:45:01 -07:00
Kampfkarren
8d0d271cd3 Make interpolated string with no formatting a syntax error 2022-07-26 19:39:54 -07:00
Kampfkarren
f8be1070c3 Make {{ a parse error 2022-07-26 19:30:02 -07:00
Kampfkarren
6cb9054c07 Remove copy paste (though I'm not sure it's much better), start work on {{ parse failure 2022-07-26 19:20:33 -07:00
Kampfkarren
08a0f3015e Fix multiple string interps 2022-07-26 15:47:33 -07:00
Kampfkarren
24f61dfeb5 Basic string interpolation proof of concept 2022-07-26 01:48:22 -07:00
Arseny Kapoulkine
5b2e39c922
Sync to upstream/release/536 (#592) 2022-07-14 15:52:26 -07:00
Arseny Kapoulkine
506d971421
Sync to upstream/release/535 (#584) 2022-07-07 18:22:39 -07:00
Arseny Kapoulkine
2daa6497a1
Sync to upstream/release/534 (#569) 2022-06-30 16:52:43 -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
rblanckaert
61766a692c
Sync to upstream/release/529 (#505)
* Adds a currently unused x86-64 assembler as a prerequisite for possible future JIT compilation
* Fix a bug in table iteration (closes Possible table iteration bug #504)
* Improved warning method when function is used as a type
* Fix a bug with unsandboxed iteration with pairs()
* Type of coroutine.status() is now a union of value types
* Bytecode output for tests/debugging now has labels
* Improvements to loop unrolling cost estimation
* Report errors when the key obviously doesn't exist in the table
2022-05-26 15:08:16 -07:00
Arseny Kapoulkine
a36b1eb29b
Sync to upstream/release/527 (#481) 2022-05-13 12:36:37 -07:00
Arseny Kapoulkine
e9cc76a3d5
Sync to upstream/release/526 (#477) 2022-05-05 17:03:43 -07:00
Arseny Kapoulkine
bd6d44f5e3
Sync to upstream/release/525 (#467) 2022-04-28 18:24:24 -07:00
Arseny Kapoulkine
e0a6461173
Sync to upstream/release/524 (#462) 2022-04-21 14:44:27 -07:00
Arseny Kapoulkine
8e7845076b
Sync to upstream/release/523 (#459) 2022-04-14 16:57:43 -07:00
Arseny Kapoulkine
de1381e3f1
Sync to upstream/release/522 (#450) 2022-04-07 14:29:01 -07:00
Arseny Kapoulkine
4c1f208d7a
Sync to upstream/release/521 (#443) 2022-03-31 14:01:51 -07:00
Arseny Kapoulkine
2c339d52c0
Sync to upstream/release/520 (#427) 2022-03-24 15:04:14 -07:00
Arseny Kapoulkine
362428f8b4
Sync to upstream/release/519 (#422) 2022-03-17 17:46:04 -07:00
Arseny Kapoulkine
dbdf91f3ca
Sync to upstream/release/517 (#408) 2022-03-04 08:36:33 -08:00
Arseny Kapoulkine
c7eca27909
Sync to upstream/release/516 (#397) 2022-02-24 15:53:37 -08:00
Arseny Kapoulkine
5b78465059
Sync to upstream/release/514 (#372) 2022-02-17 17:18:01 -08:00
Arseny Kapoulkine
63d5423bbb
Sync to upstream/release/514 (#357) 2022-02-11 11:02:09 -08:00
Arseny Kapoulkine
d58e70b8c1
Sync to upstream/release/513 (#340) 2022-02-04 08:45:57 -08:00
Arseny Kapoulkine
8fe95c9963
Sync to upstream/release/511 (#324)
- 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
Arseny Kapoulkine
32c39e2162
Sync to upstream/release/510 (#313) 2022-01-14 08:20:09 -08:00
Arseny Kapoulkine
d50b079325
Sync to upstream/release/509 (#303)
- 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 #296)
- 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 #265)
- 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 (#301)
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
Arseny Kapoulkine
f2e6a8f4a5
Sync to upstream/release/507-pre (#286)
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 #56)
- 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