Alex Orlenko
0de7cd1c7d
Don't move or wrap ffi::lua_Debug struct when inspecting stack
...
This can cause a crash if `ffi::lua_Debug` changed between `lua_getstack` and `lua_getinfo` calls.
Fixes #610
2025-06-29 11:49:34 +01:00
Alex Orlenko
25955893e0
(Luau Require) Resolve Lua file path relative to the current directory
...
and unrelated to Rust source file location.
When a Lua file is required inside a Rust file (in a chunk), we should resolve the Lua file relative to the current directory,
instead of relative to the Rust chunk path.
The Rust file location is an internal information that does not exist when the compiled binary runs.
Fixes #605
2025-06-23 15:53:35 +01:00
Alex Orlenko
3f0c69b70b
Fix logic to terminate futures on drop.
...
The underlying Lua thread must stay in yielded state rather than finished.
2025-06-17 15:25:21 +01:00
Alex Orlenko
9da98d42c7
Move ref_stack_pop into ExtraData method.
2025-06-16 22:25:26 +01:00
Alex Orlenko
f539f60987
Fix Function::deep_clone() method (Luau).
...
The `lua_clonefunction` function can fail (and trigger GC) so we need to return Result instead of allowing longjmp
2025-06-16 21:41:29 +01:00
Alex Orlenko
aa187e6663
Increase REF_STACK_RESERVE to 3 slots
2025-06-16 21:37:16 +01:00
Alex Orlenko
ec10bf2a39
Revert 2e0e86dab2 (Update stack_value helper)
2025-06-16 21:33:47 +01:00
Alex Orlenko
3ea80b763d
cargo fmt
2025-06-16 11:21:51 +01:00
Alex Orlenko
2e0e86dab2
Update stack_value helper.
...
It uses zero stack spaces in Luau, and ref thread for `WrappedError` check in ther Lua versions.
Close #597
2025-06-16 11:12:53 +01:00
Alex Orlenko
0ac7aebb27
Update Lua::sandbox doc
2025-06-13 15:51:31 +01:00
Alex Orlenko
634e5d4550
Reduce collectgarbage options in sandboxed mode
...
See https://luau.org/sandbox#library
2025-06-13 15:47:54 +01:00
Alex Orlenko
05d6c20520
One more mismatched-lifetime-syntaxes
2025-06-12 23:44:47 +01:00
Alex Orlenko
63e7cfd31b
Satisfy mismatched-lifetime-syntaxes lint (nightly)
...
See rust-lang/rust#141787
2025-06-12 16:30:48 +01:00
Alex Orlenko
62f84828f2
Open some doc(hidden) functionality
2025-06-12 13:42:26 +01:00
Alex Orlenko
7bc72be7d3
Use serde feature flag instead of serialize.
...
The old one is still supported.
2025-06-12 13:35:22 +01:00
Alex Orlenko
a2dc662a92
Add RawLua::create_table_from (internal)
2025-06-11 23:55:06 +01:00
Alex Orlenko
caeac2e9a3
Add private app_data container for mlua internal use
2025-06-11 22:24:26 +01:00
Alex Orlenko
3d5261640d
Fix doc warnings
2025-06-06 23:25:36 +01:00
Alex Orlenko
39cac5699a
Add unwinding support (returning an Error) to Luau Require implementation
2025-06-06 13:46:51 +01:00
Alex Orlenko
e6e1ef014f
Some cosmetic changes (Luau "require")
2025-06-05 23:11:14 +01:00
Alex Orlenko
65e292dac4
More Luau require tests
2025-06-03 23:01:50 +01:00
Alex Orlenko
b3854d2f1d
Add '=' prefix to __mlua_bind name
2025-05-28 14:03:10 +01:00
Alex Orlenko
00a56b115b
Add LuaBorrowedBytes/LuaBorrowedStr to prelude
2025-05-28 14:01:35 +01:00
Alex Orlenko
2fefaafaa6
Update "AnyUserData::take" to work on ref thread without need to push into stack.
2025-05-28 12:13:34 +01:00
Alex Orlenko
76a8f8cc71
Add __type to Error's userdata metatable.
...
Close #585
2025-05-27 01:31:54 +01:00
Alex Orlenko
c61219dd93
Update Luau Require trait (sync with 0.674)
2025-05-27 00:12:45 +01:00
Alex Orlenko
2e7c654cfe
Make AsChunk trait dyn-friendly
2025-05-26 23:29:59 +01:00
Alex Orlenko
f36aaa5ce1
Add loadstring function to Luau
...
Closes #578
2025-05-15 11:10:42 +01:00
Alex Orlenko
df38878278
Update __mlua_index/__mlua_newindex chunk names
2025-05-15 11:03:30 +01:00
Alex Orlenko
c5c1fe3b85
Fix tests
2025-05-14 00:19:29 +01:00
Alex Orlenko
0cc4b15f6b
Generate doc for lua_module macro using doc cfg instead of docsrs
2025-05-13 21:56:11 +01:00
Alex Orlenko
f16aca687d
Terminate underlying Rust future when AsyncThread is dropped.
...
Before this change, Lua GC was responsible to collect and destroy the future if
`AsyncThread` dropped in yielded state.
Now we will propagate "drop" event immediately so Lua GC need to only free the memory.
2025-05-09 12:48:40 +01:00
Alex Orlenko
c0c802262e
Add must_use to AsyncCallFuture
2025-05-06 22:48:48 +01:00
Alex Orlenko
93adfa42d1
Update doc comments
2025-05-06 22:36:23 +01:00
Alex Orlenko
5dc6c3214b
Prepare for 2024 edition
2025-05-06 21:28:21 +01:00
Alex Orlenko
ed796fff51
Support async require loaders for Luau
2025-05-04 11:00:59 +01:00
Alex Orlenko
65e5be81ba
Update __mlua_async_poll chunk name
2025-05-04 11:00:27 +01:00
Alex Orlenko
05a0abb8c2
Replace Requite::load with Require::loader
2025-05-03 18:00:02 +01:00
Alex Orlenko
2490dfeb38
Silence clippy false positives
2025-05-01 13:18:40 +01:00
Alex Orlenko
97ca3e2c08
Check that type passed to scoped userdata self argument is userdata.
...
If passed type is non-userdata we try to get a pointer (which will be null) that triggers an assertion.
Having a check also allow us to generate right error message.
Fixes #569
2025-05-01 13:09:23 +01:00
Alex Orlenko
d6fb328660
Don't use Lua::get_or_init_from_ptr in Require::load wrapper
2025-04-28 10:07:11 +01:00
Alex Orlenko
edd508ed1f
Make StateGuard automatically enabled inside callback_error_ext.
...
Remove manual usage of `StateGuard` in other places.
Closes #567
2025-04-27 23:09:20 +01:00
Alex Orlenko
a30a736291
Don't borrow mutably appdata container when working with require content cache
2025-04-27 00:38:30 +01:00
Alex Orlenko
8e1df48e81
Add encode_empty_tables_as_array serialize option.
...
This will change the behaviour of encoding empty Lua tables into array instead of map.
2025-04-26 17:53:56 +01:00
Alex Orlenko
efd192b816
Optimize Table::is_empty
2025-04-26 15:37:12 +01:00
krakow10
5e1451a465
Fix Reversed Comments & Typo ( #560 )
...
* Fix reversed comments
* Fix typos
2025-04-26 13:49:50 +01:00
Alex Orlenko
64b1d152b9
Deprecate Lua::load_from_finction and replace it with Lua::register_module and Lua::preload_module instead.
2025-04-26 13:42:07 +01:00
Alex Orlenko
a8a4aa8c93
Switch to "proxyrequire" function (follow up Luau 0.671)
2025-04-25 23:41:11 +01:00
Alex Orlenko
21fc924457
Add Lua::create_require_function method
2025-04-25 20:01:37 +01:00
Alex Orlenko
30d5e08a8a
Add MaybeSend to Require trait
2025-04-25 15:51:33 +01:00