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
Alex Orlenko
df778b7b33
Impl Into/FromLua for OwnedString
2024-01-25 18:04:55 +00:00
Alex Orlenko
145c5b316b
Fix FromLua derive proc macro to cover more cases
2024-01-25 10:26:43 +00:00
Alex Orlenko
2ac7b23596
Impl Into/FromLua for OwnedThread
2024-01-25 09:34:37 +00:00
Alex Orlenko
8200bee467
Implement IntoLua for ref to String/Table/Function/AnyUserData
...
This would prevent cloning plus has better performance when pushing values to Lua stack (`IntoLua::push_into_stack` method)
2024-01-23 22:14:50 +00:00
Alex Orlenko
727f99ee4d
Implement IntoLua for &RegistryKey
...
This would allow just passing registry keys to arguments with fasttrack to push directly into stack.
2024-01-20 22:04:28 +00:00
Alex Orlenko
205989f569
Fix edge case when loading many-in-one module from thread without using its state.
...
If Lua previously been initialized in main thread and then new module was loaded from thread
we reuse old state which confuses Lua loader.
2024-01-10 00:37:02 +00:00
Alex Orlenko
9ed0d90746
Run tests for wasm32-unknown-emscripten
2024-01-06 12:12:56 +00:00
ByteDream
0b9a85e183
Add lua emscripten support ( #338 )
2023-12-14 14:54:57 +00:00
Alex Orlenko
66e01548ce
Update Luau+windows require dylib failed test
2023-11-20 22:16:44 +00:00
Alex Orlenko
93b505cff9
Integrate Luau package into mlua api.
...
Eg. `Lua::load_from_std_lib` with `StdLib::PACKAGE` is now supported for Luau.
2023-11-20 12:08:08 +00:00
Alex Orlenko
2bee5ed33a
Support binary modules for Luau on cfg(unix)
2023-11-16 15:54:25 +00:00
Alex Orlenko
2d775695ef
Rewrite Luau require function to support module loaders.
...
Also add `package` library with `path`/`loaded`/`loaders`.
2023-11-16 14:39:17 +00:00
Alex Orlenko
34476ebf53
Support LuaJIT cdata type (produced by ffi module)
2023-11-16 13:33:23 +00:00
Alex Orlenko
5043447f23
Support Luau buffer type and and library.
...
Buffer is an object that represents a fixed-size mutable block of memory and added to Luau 0.601.
See https://luau-lang.org/library#buffer-library for more details.
2023-11-16 12:55:58 +00:00
Alex Orlenko
2a3980ef62
Add Table::for_each method for fast (faster than pairs()) table pairs traversal.
2023-10-10 12:52:26 +01:00
Alex Orlenko
adb979761e
Optimize table traversal (pairs iterator).
2023-10-10 11:25:21 +01:00
Alex Orlenko
54c14cc5b8
Update luajit (vendored) to 210.5.0
...
This includes switch from openresty's to vanilla luajit
2023-09-29 12:57:29 +01:00
Alex Orlenko
6488477bc4
rustfmt 1.72+
2023-08-27 23:26:27 +01:00
Alex Orlenko
53b7b5b70b
Fix setting userdata (static) fields when it has __index metamethod/function.
...
Closes #312
2023-08-27 23:01:37 +01:00
Alex Orlenko
a802276c56
Fix an edge case when using invalidated (relative) userdata index after processing varargs.
...
This causes Lua API correctness check assertion in debug mode.
Fixes #311 .
2023-08-24 00:54:50 +01:00
Alex Orlenko
e2b3464ec9
impl IntoLuaMulti for StdResult<(), E>
2023-08-20 14:17:18 +01:00
Alex Orlenko
7662a7e4ff
Update non-static (scoped) userdata:
...
- Use the new stack api
- Support static fields constructor
- Better error messages (on bad arguments)
2023-08-15 01:22:57 +01:00
Alex Orlenko
d769a95fc5
Add Scope::create_any_userdata()
2023-08-14 17:39:51 +01:00
Alex Orlenko
0e4476c2e3
Add Lua::set_vector_metatable() method (unstable)
2023-08-12 22:46:21 +01:00
Alex Orlenko
d48a2b3f6c
Add OwnedThread type (unstable)
2023-08-12 21:18:12 +01:00
Alex Orlenko
09eb7f251b
Support options for Value::serialize() implementation
...
To match `lua.from_value_with()` functionality.
2023-08-12 17:24:57 +01:00
Alex Orlenko
c0c6a33f94
Add new option sort_keys to DeserializeOptions (Lua::from_value method)
...
Closes #303
2023-08-07 11:44:52 +01:00
Alex Orlenko
3e479be4e5
Cosmetic changes for the Value conversions + add tests
2023-08-06 23:41:27 +01:00
Alex Orlenko
cd0c8a4584
Optimize async functionality:
...
Rewrite using the new `push_into_stack()`/`from_stack()` methods.
Also store thread state (pointer) in `Thread` struct to avoid getting it every time.
Async userdata methods still need to have arguments stored in ref thread as stack is empty on every poll().
2023-08-03 00:56:17 +01:00
Alex Orlenko
dc94d51d97
Update Luau compiler options
2023-07-28 21:45:19 +01:00
Alex Orlenko
3a096ae64a
Fix warning when compiling chunk tests
2023-07-28 21:45:13 +01:00
Alex Orlenko
8b71f94141
Fix AsChunk trait to support capturing wrapped Lua types (AnyUserData::wrap() and Function::wrap()).
...
This is a breaking change, the `'lua` lifetime used to in environment moved to the trait declaration.
2023-07-27 13:56:48 +01:00