Alex Orlenko
f66932e8d2
Revert "Rename Owned*::to_ref() to as_ref()"
...
This reverts commit 5394faca16 .
2023-03-30 22:35:43 +01:00
Alex Orlenko
d9aac08b81
Support setting memory limit for Lua 5.1/JIT/Luau
...
Other versions already support this feature.
Closes #119
2023-03-26 00:06:52 +00:00
Alex Orlenko
22c973af02
Async: Don't clone function when executing it from recycled thread
2023-03-03 18:22:39 +00:00
Alex Orlenko
5394faca16
Rename Owned*::to_ref() to as_ref()
2023-03-02 15:36:11 +00:00
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
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
bf79d9e75d
Initial implementation of owned Lua types
2022-12-18 00:35:41 +00:00
Alex Orlenko
29c6c9cb58
Fix clippy warnings
2022-10-09 14:08:33 +01:00
Alex Orlenko
e523fb2c86
Update to Luau 0.548 (luau-src >=0.4)
2022-10-08 23:34:47 +01:00
Trisha
20a16839aa
Fix typo in doc comment
2022-08-23 01:47:17 +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
f3f173fcb6
Function::bind: simply clone the function if args are empty MultiValue
2022-07-21 20:54:49 +08:00
Alex Orlenko
0076aa735a
Add Function::coverage for Luau to obtain coverage report
2022-05-24 02:01:46 +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
5133a9837a
Add Function::info() to get information about functions.
...
Closes #149 and #7 .
2022-04-18 18:28:11 +01:00
Alex Orlenko
55fac90a74
Fix Luau documentation in docs.rs
...
Enable `Lua::gc_inc` for Luau
Mark `debug` module as safe for Luau
2022-04-08 20:02:12 +01:00
Alex Orlenko
ec1fa04085
Update docs
2022-03-25 00:43:54 +00:00
Alex Orlenko
c322e028e2
Initial Luau support
2022-03-20 20:30:20 +00:00
Alex Orlenko
19bd254e1e
Update comments
2021-11-14 23:27:20 +00:00
Alex Orlenko
50f20e0c2c
Add thread (coroutine) cache to reset and later reuse to execute async functions.
...
It works on Lua 5.4 and LuaJIT (vendored) with `lua_resetthread` function.
2021-11-14 23:19:47 +00:00
Alex Orlenko
2c7d7117d2
Optimize MultiValue allocations (recycle old container)
2021-11-12 10:55:20 +00:00
Alex Orlenko
ed48b11e7f
Update documentation references
...
Using rustdoc links (see RFC https://github.com/rust-lang/rfcs/pull/1946 )
2021-10-12 00:49:45 +01:00
Alex Orlenko
5b1483bd56
Change syntax of protect_lua macro
2021-09-28 18:47:08 +01:00
Alex Orlenko
e42d67c70d
Make protect_lua as a smart macro to choose from C/closure
2021-09-28 16:26:30 +01:00
Alex Orlenko
1731f5d61b
Revert "Make protect_lua as a smart macro to choose from C/closure"
...
This reverts commit 84fe5f7f76 .
2021-07-08 18:41:10 +01:00
Alex Orlenko
84fe5f7f76
Make protect_lua as a smart macro to choose from C/closure
2021-07-07 12:54:19 +01:00
Alex Orlenko
d3f44354e0
Revert commit ced808d5ab
...
I think this experiment is unsuccessful and does not work well in a module mode
with dynamic symbols resolution and mixing between different mlua instances.
Overall the Rust bug has been fixed and we can wait for the "C-unwind" feature become stable.
2021-06-16 22:13:01 +01:00
Alex Orlenko
0bad4a0ff9
Fix spelling
2021-05-10 19:53:38 +01:00
Alex Orlenko
e8505b5239
Change signature of Function::dump() to remove Result
2021-05-02 11:48:42 +01:00
Alex Orlenko
3f55958bdd
Stack assertions review
...
Other minor code and documentation updates
2021-05-02 11:42:03 +01:00
Alex Orlenko
ced808d5ab
Don't trigger longjmp in rust.
...
Motivation behind this change is upcoming breaking change in Rust
compiler v1.52.0 to prevent unwinding across FFI boundaries.
https://github.com/rust-lang/rust/pull/76570
The new functionality requires nightly compiler to declare FFI
functions as "C-unwind".
The fundamental solution is to use C shim to wrap "e" and "m"
Lua functions in pcall.
Additionally define Rust calling convention to trigger lua_error
on Rust behalf.
2021-04-27 00:29:38 +01:00
Alex Orlenko
9f82cbe0c5
Update documentation
2020-12-31 13:39:38 +00:00
Alex Orlenko
dd58cdad52
Add Function::dump() to dump lua function to a binary chunk
2020-07-27 23:26:33 +01:00
Alex Orlenko
687ecc9247
Update documentation
2020-05-15 01:48:57 +01:00
Alex Orlenko
0efa0fcb6a
Update documentation
2020-04-20 01:52:01 +01:00
Alex Orlenko
c826798a6d
Minor refactor
2020-04-19 16:51:35 +01:00
Alex Orlenko
222f4df668
Add family of call_async function
...
Update documentation
Move async tests to a separate file
2020-04-18 21:26:12 +01:00
Alex Orlenko
5eec0ef56b
Implement PartialEq trait for Value (and subtypes)
...
Add equals() method to compare values optionally invoking __eq.
2020-01-07 00:03:03 +00:00
Alex Orlenko
6874c2e004
Fix examples and docs
2019-11-04 22:23:15 +00:00
Alex Orlenko
cb109f6e36
Rename to mlua
2019-10-01 16:11:12 +01:00
Alex Orlenko
affa85feb0
Backport changes from rlua 0.16 (master branch)
2019-09-29 12:53:13 +01:00
kyren
2e1bdb64c0
format with up-to-date rustfmt
2018-08-05 09:51:39 -04:00
kyren
8b9ab3d031
Small renames and comments to better communicate the intention of stack checking functions
2018-03-19 17:42:10 -04:00
kyren
a05f0d5cd0
Where possible, don't call to_lua / from_lua / to_lua_multi / from_lua_multi callbacks during Lua stack manipulation
...
This should protect against being able to trigger a stack assert in Lua. Lua
and associated types shoul be able to assume that LUA_MINSTACK stack slots are
available on any user entry point. In the future, we could turn check_stack
into something that only checked the Lua stack when debug_assertions is true.
2018-03-19 15:16:40 -04:00
kyren
ee23f199f0
Remove stack_guard function and instead just use StackGuard directly
2018-03-12 13:13:44 -04:00