Alex Orlenko
e582e7c57f
Rename get_metatable to metatable for Table/AnyUserData types
2024-09-23 11:13:16 +01:00
Alex Orlenko
ca69be07ff
Support setting metatable for Lua builtin types.
...
Closes #445
2024-09-23 10:45:57 +01:00
Alex Orlenko
fc1570d2d7
Support yielding from hooks for Lua 5.3+
2024-09-22 19:04:32 +01:00
Alex Orlenko
5162a0f46e
Add Lua::with_raw_state to provide easy low-level access to the Lua state.
2024-09-22 11:25:38 +01:00
Alex Orlenko
da4404baa5
Add Lua::scope back
2024-09-20 13:01:55 +01:00
Alex Orlenko
e1c0aa8491
Fix test test_integer_from_lua
2024-09-07 17:01:04 +01:00
Alex Orlenko
7957c6868d
Fastpath for LuaString/integer/float conversion from Lua
2024-09-07 12:25:35 +01:00
Alex Orlenko
104e242ddd
Some cosmetic changes
2024-09-01 22:48:56 +01:00
Alex Orlenko
825bdbfa04
Use dynamic Lua state ownership instead of compile-time module cfg flag to allow
...
creating new VMs in module mode (and destructing them properly).
2024-08-31 22:52:55 +01:00
Alex Orlenko
4018a17e26
Combine TableExt and AnyUserDataExt traits into ObjectLike
2024-08-30 22:50:03 +01:00
Alex Orlenko
3774296835
Run gargabe collection on main Lua instance drop
...
This should help preventing leaking memory when capturing Lua in async block
and dropping future without finishing polling.
2024-08-29 11:59:52 +01:00
Alex Orlenko
ece66c46bf
Remove unstable feature flag
2024-08-26 23:51:58 +01:00
Alex Orlenko
4977b91a98
Detect compilation error and return Result when using Compiler::compile() interface.
...
Closes #387
2024-08-25 23:07:13 +01:00
Alex Orlenko
6317b8e0c8
Test GC for nested userdata (userdata in userdata)
2024-08-25 21:02:12 +01:00
Alex Orlenko
23d4e2519b
Switch to Mutex from RwLock for userdata access in send mode.
...
Unfortunately RwLock allow access to the userdata from multiple threads
without enforcing `Sync` marker.
2024-08-24 09:44:39 +01:00
Alex Orlenko
9931709ecd
Remove explicit lifetime from UserDataMethods and UserDataFields traits.
...
Pass `'static` arguments to async functions and require `'static` Future.
(in future we can use async closures to make it more elegant).
2024-08-23 00:10:29 +01:00
Alex Orlenko
c58f67b140
Add MaybeSend requirement to Lua futures
2024-08-10 17:55:39 +01:00
Alex Orlenko
ac6a391426
Remove Lua::into_static and Lua::from_static (undocumented).
2024-08-05 14:57:15 +01:00
Alex Orlenko
8e14b6e40b
Fix tests
2024-08-04 22:22:02 +01:00
Alex Orlenko
c117a4c1af
Fix loading (fetching) stdlib modules when using require in Luau.
...
Fixes #435 .
2024-08-04 18:55:17 +01:00
Alex Orlenko
4082b354fe
clippy
2024-08-01 00:55:10 +01:00
Alex Orlenko
3641c98959
Prepare for Rust 2024 edition (see rust-lang/rust#123748 )
...
Replace `IntoLua(Multi)` generic with positional arg (impl trait) where possible
This allow to shorten syntax from `a.get::<_, T>` to `a.get::<T>`
2024-07-31 23:42:43 +01:00
Alex Orlenko
b7d170ab9b
Refactor ThreadStatus:
...
- Add `ThreadStatus::Running`
- Replace `ThreadStatus::Unresumable` with `ThreadStatus::Finished`
Change `Error::CoroutineInactive` to `Error::CoroutineUnresumable`
2024-07-31 22:34:45 +01:00
Alex Orlenko
94415065c0
Fix Lua String soundness when borrowing &str or &[u8].
...
Make borrowing using new `BorrowedStr` and `BorrowedBytes` types that holds strong reference to Lua.
2024-07-31 13:42:38 +01:00
Alex Orlenko
d9941ef409
Take &mut RegistryKey in Lua::replace_registry_value.
2024-07-31 13:42:38 +01:00
Alex Orlenko
b4892c228c
Add rustfmt.toml
2024-07-31 13:42:37 +01:00
Alex Orlenko
658f2a13ea
Support multi threads under send feature flag
2024-07-31 13:42:37 +01:00
Alex Orlenko
cd6d86a5ce
Split single lua module to multiple submodules under state
2024-07-31 13:42:37 +01:00
Alex Orlenko
550d6b2991
Remove wrapped UserData impl (Rc/Arc/etc)
2024-07-31 13:42:36 +01:00
Alex Orlenko
313117095c
Remove parking_lot feature flag
2024-07-31 13:42:35 +01:00
Alex Orlenko
7221051683
Refactor:
...
- Remove the rest of `'lua` lifetimes
- Remove Owned types
2024-07-31 13:42:35 +01:00
Alex Orlenko
98ca880f8a
Change Value::Error variant to store Box<Error> instead of Error.
...
This will help to reduce size of `Value` enum on the stack.
2024-07-31 13:42:34 +01:00
Alex Orlenko
c23fa5aa6c
Optimize RegistryKey internals
...
- Store single `AtomicI32` field instead of pair i32,AtomicBool
- Make creation faster by skipping intermediate `Value` layer
Add new `RegistryKey::id()` method to return underlying identifier
2024-06-18 16:09:06 +01:00
Alex Orlenko
a25e81036e
Do not allow already running coroutines to be reset or resumed.
...
This is a wrong use of the Lua API and is not supported.
See #416 for the reference.
2024-06-12 23:18:46 +01:00
Alex Orlenko
59c9abbac7
Fix serializing same table multiple times.
...
Fixes #408
2024-05-14 00:42:04 +01:00
Alex Orlenko
317ce7caa6
Add Lua::set_fflag() to control Luau feature flags
2024-05-04 21:15:22 +01:00
Alex Orlenko
62f0bb97b0
Add Lua::create_ser_any_userdata() function
2024-04-05 12:03:40 +01:00
Alex Orlenko
f67f8646ae
Implement push_into_stack/from_stack for Option<T>
2024-03-28 18:18:08 +00:00
Alex Orlenko
fa217d3706
Better Luau buffer type support.
...
- Add `Lua::create_buffer()` function
- Support serializing buffer type as a byte slice
- Support accessing copy of underlying bytes using `BString`
2024-03-28 13:05:01 +00:00
Alex Orlenko
a79840afc9
Suppress Rust 1.77 dead_code false warnings.
2024-03-23 11:42:46 +00:00
Alex Orlenko
39afe4c6f7
Add SerializeOptions::detect_serde_json_arbitrary_precision to detect serde_json::Number with arbitrary_precision and convert it to Lua number.
...
By default the option is disabled and such numbers represented as Lua objects with `$serde_json::private::Number` key.
Fixes #385
2024-03-23 11:27:46 +00:00
Alex Orlenko
9734146313
Add Function::deep_clone() (Luau only)
2024-03-21 22:14:00 +00:00
Alex Orlenko
58be624222
Remove redundant "match" when checking userdata type via AnyUserData::is.
...
Fixes #386
2024-03-20 19:29:47 +00:00
Alex Orlenko
83c075c72b
Implement IntoLua for RegistryKey
2024-02-29 22:45:32 +00:00
Alex Orlenko
020e8a78a8
Impl FromLua for RegistryKey
2024-02-10 15:41:48 +00:00
Alex Orlenko
3ca7b4942e
Implement IntoLua for &Value
2024-02-07 00:10:49 +00:00
Alex Orlenko
908f37656a
Add to_pointer function to Function/Table/Thread
2024-02-02 09:23:16 +00:00
Alex Orlenko
f4d783cb41
Impl push_into_stack for StdResult
2024-02-01 23:42:44 +00:00
Alex Orlenko
e30b425224
Fix crash when initializing Luau sandbox without stdlibs ( #361 )
2024-01-27 11:51:59 +00:00
Alex Orlenko
60730fd068
Update compile tests messages
2024-01-25 18:19:16 +00:00