Alex Orlenko
6807dfa22e
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
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
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
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
Alex Orlenko
ee32dc33f3
Check that lua_newstate() returns non-null Lua state
2022-08-01 12:56:36 +01:00
Alex Orlenko
ab029b087d
Close to-be-closed variables for Lua 5.4 when using call_async functions
...
Fixes #192
2022-07-31 15:33:02 +01:00
Alex Orlenko
185fee956d
v0.8.2
2022-07-25 14:23:25 +01:00
Alex Orlenko
4fc69be5f6
Update rustyline dev dependency
2022-07-25 14:14:01 +01:00
Alex Orlenko
3ec076693a
Add FAQ
2022-07-24 11:59:04 +01:00
Alex Orlenko
95adf8df8e
Add `__iter` to destructed metatable (luau)
2022-07-24 11:55:36 +01:00
Alex Orlenko
4a25eab257
Merge pull request #189 from hack3ric/master
...
`Function::bind`: simply clone the function if args are empty `MultiValue`
2022-07-22 00:28:18 +01:00
Alex Orlenko
40fe937878
Fix a bug in `Function::bind` when args and binds are empty
...
This leads to a Lua assertion due to using wrong stack index
2022-07-22 00:24:53 +01:00
Eric Long
a6b178328d
Merge branch 'master' of https://github.com/hack3ric/mlua
2022-07-21 20:55:28 +08:00
Eric Long
f3f173fcb6
`Function::bind`: simply clone the function if `args` are empty `MultiValue`
2022-07-21 20:54:49 +08:00
Alex Orlenko
d3b48cf2f3
Use Luau tags to mark userdata objects as destructed
2022-07-18 10:38:22 +01:00
Alex Orlenko
f9ff6116db
Use MaybeUninit instead of hack in protect_lua_closure
2022-07-17 11:33:51 +01:00
Alex Orlenko
f75af6d75f
Fix clippy warnings
2022-07-17 11:11:30 +01:00
Alex Orlenko
059e41bafb
Optimize `WrappedFailure` userdata detection.
...
This is done by comparing a metatable pointer to previously saved one (it never changes).
2022-07-17 11:00:46 +01:00
Alex Orlenko
f7ee6dc635
Add lua_xpush to 5.1-5.4
2022-07-17 11:00:46 +01:00
Alex Orlenko
0919ff21c9
Merge pull request #181 from hack3ric/master
...
Add `MultiValue::get` & add clear error in `Index`
2022-07-01 10:10:16 +01:00
Eric Long
553251761f
Add `MultiValue::get` & add clear error in `Index`
2022-07-01 01:59:40 +08:00
Alex Orlenko
b46b476f80
v0.8.1
2022-06-29 15:41:22 +01:00
Alex Orlenko
70e16b51ae
Set source name to full file path in Luau require
2022-06-29 11:25:16 +01:00
Alex Orlenko
9596b97faa
Update Lua::create_userdata doc about sharing metatable.
...
Closes #175
2022-06-29 00:25:26 +01:00
Alex Orlenko
8cbb3d8fae
Merge pull request #180 from khvzak/userdata_proxy
...
Add Lua::create_proxy for easy access to UserData static fields and f…
2022-06-29 00:05:59 +01:00
Alex Orlenko
e7f494530f
Add Lua::create_proxy for easy access to UserData static fields and functions
...
Closes #178
2022-06-28 23:03:29 +01:00
Alex Orlenko
3746c3614f
Merge pull request #179 from hack3ric/master
...
Implement utilities for MultiValue
2022-06-28 22:56:28 +01:00
Alex Orlenko
9af1aaf889
Make clippy happy
2022-06-28 21:28:48 +01:00
Eric Long
c20eb20a59
Implement utilities for MultiValue
2022-06-29 01:21:32 +08:00
Alex Orlenko
04ba93137c
Add `Table::to_pointer()` and `String::to_pointer()` functions
2022-06-27 14:58:48 +01:00
Alex Orlenko
113f91ace3
Derive Default for Lua::MemoryInfo
2022-06-27 13:57:15 +01:00
Alex Orlenko
ff0d923aae
Don't use custom allocator for non-vendored LuaJIT ( fixes #176 )
2022-06-27 13:04:32 +01:00
Alex Orlenko
d9ac7abff2
v0.8.0
2022-06-08 23:57:35 +01:00
Alex Orlenko
48aa97351d
Add Sandboxing section to README
2022-06-08 23:56:26 +01:00
Alex Orlenko
4516ca0bb5
Forgotten part of userdata performance optimization for Lua 5.1
2022-06-07 17:59:22 +01:00
Alex Orlenko
9005f32a98
Add `ffi::luau::lua_tolightuserdata` introduced in Luau 0.528
2022-06-06 22:40:29 +01:00
Alex Orlenko
93d36b9068
More performance optimization (userdata part)
2022-06-06 21:42:55 +01:00
Alex Orlenko
f9f32bffce
Update bundled luau/jit versions
2022-06-06 15:59:28 +01:00
Alex Orlenko
da5010e6de
Switch to 2021 edition and bump MSRV to 1.56+
2022-06-06 15:40:29 +01:00
Alex Orlenko
4afca8f5bb
Prepare for v0.8.0 release
2022-06-02 22:44:07 +01:00
Alex Orlenko
b065db37c2
Always use Rust allocator for Lua 5.1/u
2022-05-31 02:09:58 +01:00
Alex Orlenko
a100ebb3d7
Fix luaL_requiref glb handling for Lua<=5.1
2022-05-30 21:45:25 +01:00
Alex Orlenko
a05a58b258
Update integer/number coercion logic
2022-05-30 19:26:12 +01:00
Alex Orlenko
3766cee4dd
Experimental optimization to skip oom check
2022-05-30 18:42:34 +01:00
Alex Orlenko
99becdb590
More inline attributes
2022-05-29 20:17:09 +01:00
Alex Orlenko
799b4e9f0d
Make Variadic::new and MultiValue::new const
2022-05-28 21:13:49 +01:00
Alex Orlenko
93f0b2a5de
Update type of lua_Integer for lua51/52
2022-05-27 12:26:56 +01:00
Alex Orlenko
62db3adde1
Add "send" test
2022-05-26 22:22:23 +01:00
Alex Orlenko
afa343ff08
Add [track_caller] attribute when working with app data container
2022-05-26 20:16:09 +01:00
Alex Orlenko
4f06f614a9
v0.8.0-beta.5
2022-05-25 01:47:38 +01:00
Alex Orlenko
30ba616a8a
Correctly deserialize newtype struct ( #168 )
2022-05-24 23:26:17 +01:00
Alex Orlenko
0076aa735a
Add `Function::coverage` for Luau to obtain coverage report
2022-05-24 02:01:46 +01:00
Alex Orlenko
bcf2cbea37
Add `Value::to_pointer()` function.
...
Closes #165 and #166 .
2022-05-18 13:15:08 +01:00
Alex Orlenko
8cd594c609
Fix typo
2022-05-18 12:15:39 +01:00
Alex Orlenko
8d71ea79aa
Cache bytecode for internal Lua chunks
2022-05-16 20:29:02 +01:00
Alex Orlenko
2a8c5c7f82
Refactor `Function::bind` implementation.
...
Make it possible to bind async function arguments.
Fixes #161
2022-05-15 01:15:31 +01:00
Alex Orlenko
6b2ceb60c4
Fix Send impl
2022-05-12 19:24:12 +01:00
Alex Orlenko
3aac7131ee
Add Iter metamethod for Luau (available from 0.526)
2022-05-09 14:34:10 +01:00
Alex Orlenko
1807fa789c
Don't require Lua sources for modules in build system
2022-05-07 22:16:54 +01:00
Alex Orlenko
7db7526a08
Update to Luau 0.526
2022-05-07 02:08:50 +01:00
Alex Orlenko
bea9b0f8b5
Assert stack for Luau in `callback_error_ext` when operating on a cached wrapped failure.
...
Should solve #153 .
2022-04-27 00:20:25 +01:00
Alex Orlenko
32a3f478bd
v0.8.0-beta.4
2022-04-25 23:18:27 +01:00
Alex Orlenko
294b3b7aae
Bump mlua_derive to 0.8.0-beta.1
2022-04-19 23:55:16 +01:00
Alex Orlenko
b0dabe9d3c
Add parking_lot feature to README
2022-04-19 23:50:11 +01:00
Alex Orlenko
5133a9837a
Add `Function::info()` to get information about functions.
...
Closes #149 and #7 .
2022-04-18 18:28:11 +01:00
Alex Orlenko
790df77965
Fix "unused" warning in tests
2022-04-17 22:39:21 +01:00
Alex Orlenko
a62636fde0
More parking_lot ci tests
2022-04-17 17:29:51 +01:00
Alex Orlenko
d77c0e3b8d
Merge pull request #147 from sondr3/parking_lot
...
Add parking_lot dependency and feature
2022-04-17 01:38:03 +01:00
Alex Orlenko
3904213ed0
Faster lua_rotate for Lua < 5.3
2022-04-17 01:02:40 +01:00
Sondre Aasemoen
a5ce0c1409
Add parking_lot dependency and feature
2022-04-16 19:45:21 +02:00
Alex Orlenko
dba76f3994
Merge pull request #145 from zh-jq/patch-v0.7.4
...
support luajit version 2.0.4
2022-04-15 20:25:32 +01:00
Alex Orlenko
86f506a170
Fix clippy warnings
2022-04-14 21:55:36 +01:00
Alex Orlenko
d3975bdf30
Refactor `AsChunk` trait.
...
Remove blanket implementation for T: AsRef<[u8]>
Implement for `std::path::Path`
2022-04-14 20:48:00 +01:00