Alex Orlenko
1d4a135e8e
Add Function::wrap/Function::wrap_mut/Function::wrap_async to wrap functions into a type that implements IntoLua trait.
...
This is useful to avoid calling `lua.create_function*` every time when `Function` handle is needed.
2022-12-22 16:24:35 +00:00
Alex Orlenko
9d28b790e7
Fix module tests
2022-12-21 21:05:23 +00:00
Alex Orlenko
61c285746c
Remove FromLua impl for UserData+Clone
2022-12-20 23:30:18 +00:00
Alex Orlenko
a13c188de3
Rename ToLua/ToLuaMulti -> IntoLua/IntoLuaMulti
2022-12-19 23:00:47 +00:00
Alex Orlenko
c60f633a62
Add "unstable" feature flag.
...
Hide owned types under the new feature flag.
Drop OwnedString/OwnedThread types (unlikely they are useful).
2022-12-19 22:26:44 +00:00
Alex Orlenko
56abc4a700
Refactor AsChunk trait
2022-12-19 21:12:36 +00:00
Alex Orlenko
9b4e3a1598
Refactor LuaInner state
...
Add static_assertions to check for auto traits impl on compilation stage
Bump MSRV to 1.63 (required for `Ref::filter_map`)
2022-12-19 16:09:05 +00:00
Alex Orlenko
0aa30226df
Check for invalid args when parsing #[lua_module(...)] proc macro
2022-12-18 00:35:41 +00:00
Alex Orlenko
fdb5724053
Add ?Sized to PartialEq for Lua String
2022-12-18 00:35:41 +00:00
rise0chen
b532f86674
feat: Support custom name of lua_module
2022-12-18 00:35:41 +00:00
Alex Orlenko
c44463f030
Replace impl AsRef<str> with simple &str
2022-12-18 00:35:41 +00:00
Alex Orlenko
de38e299fc
Use impl AsRef<str> for userdata methods/fields instead of generic param.
...
Use `impl AsRef<str>` for module names and named registry values.
2022-12-18 00:35:41 +00:00
Alex Orlenko
7526773a90
Do not clear usevalues when taking value out of userdata.
...
It has big performance penalty.
Lua GC can collect uservalues when userdata is not referenced anymore.
2022-12-18 00:35:41 +00:00
Alex Orlenko
bf79d9e75d
Initial implementation of owned Lua types
2022-12-18 00:35:41 +00:00
Joel Natividad
02c08c6350
upgrade bstr from 0.2 to 1.0
2022-12-18 00:35:40 +00:00
Alex Orlenko
05eb20f9c6
Fix subtraction overflow when calculating index for MultiValue::get().
...
Return `None` instead of panic in debug mode.
Fixes #232
2022-12-15 21:10:31 +00:00
Alex Orlenko
9716918517
Fix lifetime of DebugNames in Debug::names() and DebugSource in Debug::source().
...
This can cause use-after-free if used wrong.
Now invalid code would not compile.
Reported in #230
2022-12-09 23:55:38 +00:00
Alex Orlenko
c88417a3b6
Redefine _VERSION for Luau to include version number.
...
https://github.com/khvzak/mlua/discussions/228
2022-12-03 21:21:28 +00:00
Alex Orlenko
6e95386f30
Update Luau to 0.555 (luau-src 0.5.0)
...
This version includes inreased LUAI_MAXCSTACK limit (100000)
2022-12-03 17:55:26 +00:00
Alex Orlenko
6807dfa22e
v0.8.6
v0.8.6
2022-11-07 01:05:14 +00:00
Alex Orlenko
f27c49f931
Fix bug when recycled Registry slot can be set to Nil.
...
This can result in allocating the same slot twice and rewriting old value.
Lua uses (registry) table length to find next free slot and having Nil in the middle of the table can impact length calculation.
With this fix we ensure that Nil values uses a special LUA_REFNIL slot.
2022-11-07 00:10:57 +00:00
Alex Orlenko
693a808b6e
v0.8.5
v0.8.5
2022-10-30 12:31:26 +00:00
Alex Orlenko
a6ca65aa74
Better checks and tests when trying to modify a Luau readonly table
2022-10-30 11:41:09 +00:00
Alex Orlenko
a7278cab78
Fix Table::raw_push for luau when readonly
2022-10-29 23:02:19 +01:00
Alex Orlenko
e1bbd00a33
Fix getting caller information from Lua::load
2022-10-28 10:43:05 +01:00
Alex Orlenko
e98998d6ac
Add push/pop methods to Table
2022-10-23 23:27:17 +01:00
Alex Orlenko
cca177df5b
Minor serde optimizations
2022-10-23 03:13:24 +01:00
Alex Orlenko
65396a910f
Optimize Lua::create_table to use reference thread if possible
2022-10-23 00:24:04 +01:00
Alex Orlenko
de69d10d73
Optimize Lua::create_string to use reference thread if possible
2022-10-23 00:14:13 +01:00
Alex Orlenko
959e61b97c
Optimize tables:
...
- Use reference thread directly for simple cases
- Fix issue when calling raw_set on readonly table (Luau)
- Add fasttrack methods for get/set/len when metatable is not set
2022-10-22 23:45:58 +01:00
Alex Orlenko
1040c0a347
Fix typo
2022-10-22 23:44:21 +01:00
Alex Orlenko
9045419586
Strings optimizations: get access to bytes directly from ref thread.
2022-10-22 23:43:08 +01:00
Alex Orlenko
fcd162f3eb
Replace Lua::ref_thread_exec
2022-10-22 23:39:49 +01:00
Alex Orlenko
0354703dbf
Update formatting (Lua registry values)
2022-10-22 23:34:19 +01:00
Alex Orlenko
9831d0e397
Check that allocation does not exceed isize::MAX
...
See https://github.com/rust-lang/rust/issues/101899
2022-10-22 23:13:02 +01:00
Alex Orlenko
7f14d93c2b
v0.8.4
v0.8.4
2022-10-09 14:40:15 +01:00
Alex Orlenko
29c6c9cb58
Fix clippy warnings
2022-10-09 14:08:33 +01:00
Alex Orlenko
e01af22bac
Update push_userdata_ref
2022-10-09 13:56:30 +01:00
Alex Orlenko
cfa959e599
Don't allocate extra byte for userdata (luau)
2022-10-09 13:56:06 +01:00
Alex Orlenko
e523fb2c86
Update to Luau 0.548 (luau-src >=0.4)
2022-10-08 23:34:47 +01:00
Alex Orlenko
81a9998559
Update CI
2022-09-13 00:09:03 +01:00
Alex Orlenko
050ac4f5ad
Add luaL_setfuncs to preserved functions
2022-09-05 23:13:06 +01:00
Alex Orlenko
967cbb53b0
Update compile tests
2022-08-23 23:12:37 +01:00
Alex Orlenko
44a8d86d8a
Fix error message in tests (luau)
2022-08-23 23:08:00 +01:00
Alex Orlenko
33278d4a64
Check if chunk is empty in luaL_loadbufferx for Luau ( fixes #200 )
2022-08-23 11:35:08 +01:00
Trisha
20a16839aa
Fix typo in doc comment
2022-08-23 01:47:17 +01:00
Alex Orlenko
83ed442bf9
v0.8.3
v0.8.3
2022-08-02 12:43:15 +01:00
Alex Orlenko
bf6708ba58
Fallback to Lua internal allocator if unable to create Lua VM with Rust one.
...
This should fix #194
2022-08-02 10:35:39 +01:00
Alex Orlenko
0cd724f63b
Fix Lua assertion when inspecting another thread stack.
...
The thread can be dead and it's not safe to call __tostring metamethod (if present) on error object.
Fixes #195
2022-08-01 22:07:39 +01:00
Alex Orlenko
5330b900fd
Check that Lua state is non-null in init_from_ptr()
2022-08-01 15:21:14 +01:00