Commit graph

224 commits

Author SHA1 Message Date
Filip Tibell
59788d9116 Use app data for net builtin client 2023-08-22 20:00:58 -05:00
Filip Tibell
59aef5c170 Split scheduler futures into lua & background, improve async tests 2023-08-22 20:00:58 -05:00
Filip Tibell
9bb3854554 Net serve test improvements, add some impl notes to scheduler 2023-08-22 20:00:58 -05:00
Filip Tibell
a3b364ae23 Start work on background tasks 2023-08-22 20:00:58 -05:00
Filip Tibell
f0099ac5e8 Figure out whats causing sigsegv 2023-08-22 20:00:58 -05:00
Filip Tibell
577f8d7928 Remove usage of unstable mlua feature 2023-08-22 20:00:58 -05:00
Filip Tibell
dc6903cfae Rename scheduler struct member 2023-08-22 20:00:58 -05:00
Filip Tibell
57677278c4 Fix pcall test, improve scheduler panic message 2023-08-22 20:00:58 -05:00
Filip Tibell
5905b2d6cf Add back support for init files in require 2023-08-22 20:00:58 -05:00
Filip Tibell
3cd7a8945c Fix wait_for_thread and remove debugging for it 2023-08-22 20:00:58 -05:00
Filip Tibell
98bb475afe Use real thread ids instead of randomized ones 2023-08-22 20:00:58 -05:00
Filip Tibell
7e7cfd7cd0 Add some different debugging 2023-08-22 20:00:58 -05:00
Filip Tibell
a8db74d40d Remove debugging 2023-08-22 20:00:58 -05:00
Filip Tibell
3ab15e63e8 Fix new lua threads not breaking scheduler out of futures resumption 2023-08-22 20:00:58 -05:00
Filip Tibell
ee21921601 Add some debugging for require 2023-08-22 20:00:58 -05:00
Filip Tibell
4eb7d5ab8b Support require without extension for path requires 2023-08-22 20:00:58 -05:00
Filip Tibell
38994b941c Store reference to lua in require context 2023-08-22 20:00:58 -05:00
Filip Tibell
9182427a0a Fix async require cache, unify relative and cwd-relative require functions 2023-08-22 20:00:58 -05:00
Filip Tibell
d6c31f67ba Implement functionality necessary for relative path requires 2023-08-22 20:00:58 -05:00
Filip Tibell
a91e24eb01 Make it easier to emit formatted lua errors 2023-08-22 20:00:58 -05:00
Filip Tibell
c484ae73d6 Add back net builtin 2023-08-22 20:00:58 -05:00
Filip Tibell
d40a7b6b4f Add back roblox builtin 2023-08-22 20:00:58 -05:00
Filip Tibell
8a2c5f65bb Add back process builtin 2023-08-22 20:00:58 -05:00
Filip Tibell
67e1d6c7fc Add back fs builtin 2023-08-22 20:00:58 -05:00
Filip Tibell
780f155377 Add back serde builtin 2023-08-22 20:00:58 -05:00
Filip Tibell
d6dbe5c861 Add back luau builtin 2023-08-22 20:00:58 -05:00
Filip Tibell
73361d5a52 Add back stdio builtin and pretty error formatting 2023-08-22 20:00:58 -05:00
Filip Tibell
e4cf40789c Dont try to resume dead threads in the scheduler 2023-08-22 20:00:58 -05:00
Filip Tibell
0757d6f293 Initial implementation of builtin libraries, task library 2023-08-22 20:00:58 -05:00
Filip Tibell
7a63987cbe Bring back version global 2023-08-22 20:00:58 -05:00
Filip Tibell
24b6498774 Rename version global test 2023-08-22 20:00:58 -05:00
Filip Tibell
2762a43dbb Add back _G table 2023-08-22 20:00:58 -05:00
Filip Tibell
b69f824b57 Pretty-print lua errors 2023-08-22 20:00:58 -05:00
Filip Tibell
4acc730d38 Ensure thread safety of scheduler state 2023-08-22 20:00:58 -05:00
Filip Tibell
b1847bf84c Add documentation for scheduler state 2023-08-22 20:00:58 -05:00
Filip Tibell
2960f960de More robust scheduler error resumption mechanism 2023-08-22 20:00:58 -05:00
Filip Tibell
dcb989fd92 Implement basic abs path require, propagate async errors back to lua threads 2023-08-22 20:00:58 -05:00
Filip Tibell
bcef44e286 Implement bulk of new require behavior 2023-08-22 20:00:58 -05:00
Filip Tibell
7d73601a58 Initial scaffolding to get custom globals and require working 2023-08-22 20:00:58 -05:00
Filip Tibell
7fe43a969f Use static lifetime bound instead of spamming actual static lifetime 2023-08-22 20:00:58 -05:00
Filip Tibell
0dbf466817 Add back lua lifetime to scheduler 2023-08-22 20:00:58 -05:00
Filip Tibell
b4bbc0630a Add table builder util 2023-08-22 20:00:58 -05:00
Filip Tibell
1f72033a6a Use static lua for now, to make lifetimes work 2023-08-22 20:00:58 -05:00
Filip Tibell
e1fa89cf60 Some lifetime and async arg improvements 2023-08-22 20:00:58 -05:00
Filip Tibell
62e6130223 Relax scheduler method args since lifetimes are now correct 2023-08-22 20:00:58 -05:00
Filip Tibell
dc80b1c28f Scheduler now manages entire Lua struct, elide lifetimes where possible 2023-08-22 20:00:58 -05:00
Filip Tibell
1b7287a742 Methods take owned threads 2023-08-22 20:00:58 -05:00
Filip Tibell
ab386e000d Add lifetimes because they are fun 2023-08-22 20:00:58 -05:00
Filip Tibell
6416ef5fb7 More work on scheduler async stuff 2023-08-22 20:00:58 -05:00
Filip Tibell
7c8af9730f Some work on async functions for new scheduler 2023-08-22 20:00:58 -05:00
Filip Tibell
0a5305b947 Add api for scheduling plain futures in scheduler 2023-08-22 20:00:58 -05:00
Filip Tibell
eafc42531f Implement futures resumption 2023-08-22 20:00:58 -05:00
Filip Tibell
d1a2dc2fa6 Use atomics in scheduler state instead of refcell 2023-08-22 20:00:58 -05:00
Filip Tibell
4fa76aa27f Implement thread return value broadcasting in scheduler 2023-08-22 20:00:58 -05:00
Filip Tibell
6757e1a1a8 Initial barebones scheduler implementation and interface 2023-08-22 20:00:58 -05:00
Filip Tibell
c80e504283 Clean slate 2023-08-22 20:00:58 -05:00
Filip Tibell
d5400f370f
Remove static lua lifetimes where possible 2023-08-16 11:17:43 -05:00
Filip Tibell
60026b1c85
Prompt state for REPL does not need PartialEq 2023-08-16 10:58:03 -05:00
Filip Tibell
2b855156bf
Make clippy happy for new REPL, minor changes
- Move some code blocks to be able to remove string cloning
- Use const strings for user-facing REPL messages
- Fix running input code twice when interrupted
- Add notes for future extensions and considerations
2023-08-16 10:56:25 -05:00
Filip Tibell
d8f6703c70
Get rid of static lifetime in lua struct creation module 2023-08-16 10:17:03 -05:00
bff6dffe90
Implement a REPL (#83) 2023-08-16 10:05:53 -05:00
Filip Tibell
74a41c1bf1
Clean up LuneError type for consumers 2023-08-14 16:32:06 -05:00
David C
72adb2172f
Pass arguments to coroutine in coroutine.resume (#86) 2023-08-14 15:52:53 -05:00
David C
c86190def1
Implement variadic versions of CFrame methods (#85) 2023-08-14 15:43:01 -05:00
Filip Tibell
0ab32ffffd
Add is_incomplete_input for LuneError struct 2023-08-14 10:41:55 -05:00
Filip Tibell
375f1b9334
Make luau compile options more strict to avoid panics 2023-08-11 19:17:48 -05:00
Filip Tibell
768aadc225
Move new luau builtin options struct to where others are, reduce usage of unwrap 2023-08-10 15:13:18 -05:00
AsynchronousMatrix
0a8773dc04
Implement new luau built-in library. (#82) 2023-08-10 14:38:25 -05:00
Filip Tibell
78c23507c9
Fix clippy complaining about default trait 2023-08-09 16:32:17 -05:00
Filip Tibell
2407800aca
Export roblox module in lib 2023-08-09 16:31:32 -05:00
Filip Tibell
ee3d0ba502
Use published versions of rbx-dom libraries 2023-08-09 16:28:12 -05:00
Filip Tibell
fea97972a2
Enable jit 2023-08-05 17:53:32 -05:00
Filip Tibell
55a2338a3e
Use global lua compiler instead of recreating on load 2023-08-05 17:51:56 -05:00
Filip Tibell
483713e635
Use mlua trait for mapping into lua errors 2023-08-05 17:12:25 -05:00
Filip Tibell
b4c3cc77ac
Use custom serialization options in serde builtin 2023-08-05 12:24:19 -05:00
Filip Tibell
9ff142e6e2
Fix require on files with multiple extensions 2023-08-04 16:58:18 -05:00
Filip Tibell
82e5844dad
Fix remaining deadlock cases for instances 2023-08-04 14:34:58 -05:00
Filip Tibell
0869b16ba6
Use plain mutex for global dom instead of rwlock 2023-08-04 14:05:44 -05:00
Filip Tibell
31e625aa71
Separate userdata impl for Instance out into new module for maintainability 2023-08-04 13:58:54 -05:00
Filip Tibell
57f730e788
Remove old docs, move typedefs dir 2023-07-22 14:44:28 +02:00
Filip Tibell
8853aad620
Implement reflection database accessible from lua in roblox builtin 2023-07-21 12:10:56 +02:00
Filip Tibell
b0f23a406b
Implement copying api for fs builtin 2023-07-20 19:29:21 +02:00
Filip Tibell
bca3de9454
Implement metadata api for fs builtin 2023-07-20 12:25:36 +02:00
Filip Tibell
2f464f846a
Update dependencies 2023-07-20 11:07:44 +02:00
Filip Tibell
689994552f
Goodbye monorepo, hello monolith 2023-07-20 09:47:00 +02:00
Filip Tibell
aec7f820ca
Migrate to using cargo workspaces 2023-02-05 19:13:58 -05:00
Filip Tibell
a8b57653f3
Fix typedefs download breaking after switching to reqwest 2023-02-03 22:21:40 -05:00
Filip Tibell
22ca94c674
Version 0.2.1 2023-02-03 19:30:15 -05:00
Filip Tibell
aefd57d2ba
Implement HTTP server, update Luau version 2023-02-03 19:27:56 -05:00
Filip Tibell
0ce03e7987
Switch to reqwest for a proper async http client 2023-02-03 14:40:06 -05:00
Filip Tibell
a448c9d2c6
Migrate back to tokio to prepare for using hyper 2023-02-03 14:15:20 -05:00
Filip Tibell
091c73038f
Fix require-d test modules not returning anything 2023-01-29 18:59:51 -05:00
Filip Tibell
589c52f769
Fix process exit behavior 2023-01-28 11:16:13 -05:00
Filip Tibell
08360a861f
Implement new process spawn options & cwd constant 2023-01-27 23:46:07 -05:00
Filip Tibell
e9d3fb21f0
Add missing param and return docs to definitions 2023-01-26 19:56:50 -05:00
Filip Tibell
0657e05cc0
Implement docs file generation & docs in the luau type definitions file 2023-01-26 19:36:06 -05:00
Filip Tibell
92781a521c
Implement list subcommand 2023-01-25 14:42:10 -05:00
Filip Tibell
fb1dc1ade2
Remove debug print 2023-01-24 20:31:13 -05:00
Filip Tibell
915dbf7bd9
Fix scripts that terminate instantly hanging forever 2023-01-24 20:30:47 -05:00
Filip Tibell
d3046194bc
Potential fix for process.spawn yield issue 2023-01-24 15:36:09 -05:00