Alex Orlenko
fa99f62a99
Fix __index and __newindex wrappers for Luau
2022-03-21 01:08:40 +00:00
Alex Orlenko
c322e028e2
Initial Luau support
2022-03-20 20:30:20 +00:00
Tarik02
d4f8dce597
Fix async userdata __index, __newindex metamethods
2022-03-20 20:03:47 +00:00
Alex Orlenko
66c9c633b2
Generate traceback from level 0 (instead of 1)
...
Fixes #112
2021-12-23 17:53:20 +00:00
Alex Orlenko
a8017c10b9
Update callback_error(_ext)
2021-11-12 12:41:03 +00:00
Alex Orlenko
153502ec73
Add set_nth_user_value
and get_nth_user_value
to AnyUserData
...
with `n` up to 65535 for all Lua versions.
2021-11-08 21:16:31 +00:00
Alex Orlenko
2ea2b1f4fb
Refactor Error::CallbackError
reporting and include source to
...
fmt::Display implementation.
This fixes #71 .
2021-11-07 22:53:37 +00:00
Alex Orlenko
806f0bcef4
Add luajit52 support (LuaJIT with partial compatibility with Lua 5.2)
2021-11-04 12:26:11 +00:00
Alex Orlenko
a9ca99349c
Switch to FxHash
2021-10-19 11:45:38 +01:00
Alex Orlenko
cab2e5a48e
Fix clippy warnings
2021-10-12 12:02:42 +01:00
Alex Orlenko
a544e41b33
Add (hidden) method UserData::take()
to take out value from userdata
2021-10-05 15:46:50 +01:00
Alex Orlenko
5b1483bd56
Change syntax of protect_lua
macro
2021-09-28 18:47:08 +01:00
Alex Orlenko
a74b637ed4
Update check_stack requirements
2021-09-28 18:41:25 +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
771a7775c5
Perf optimization: refactor metatable cache
2021-09-28 16:25:08 +01:00
Alex Orlenko
ee1c8a1a3d
Add inline attributes to few hot funcs
2021-09-28 16:19:29 +01:00
Alex Orlenko
1d7f105585
Don't catch Rust panics in userdata finalizer on drop
2021-08-06 11:14:16 +01:00
Alex Orlenko
3bffe1d7c3
Combine WrappedError and WrappedPanic structs to WrappedFailure enum
2021-07-09 00:05:29 +01:00
Alex Orlenko
582b2c585f
Rename init_gc_metatable_for and get_gc_metatable_for
2021-07-08 22:57:54 +01:00
Alex Orlenko
56b6b128b5
Minor fixes/compilation after revert
2021-07-08 22:53:53 +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
60822d12d2
Revert "Move away from metatable hashmap cache to direct keys"
...
This reverts commit adbc9ccc9b
.
2021-07-08 18:40:14 +01:00
Alex Orlenko
adbc9ccc9b
Move away from metatable hashmap cache to direct keys
2021-07-08 15:37:18 +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
14d5c2c887
Lua->Rust callback performance improvements
2021-06-20 00:24:53 +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
b610a79d66
Update docs & minor error handling code changes
2021-05-11 14:18:22 +01:00
Alex Orlenko
fe39ae09bf
Try different approach for errors handling.
...
Instead of convering error to CallbackError in error message handler,
do it earlier at callback_error stage.
Better fix for #44 .
2021-05-11 00:53:07 +01:00
Alex Orlenko
0bad4a0ff9
Fix spelling
2021-05-10 19:53:38 +01:00
Alex Orlenko
35b7504076
Improve error reporting in module mode.
...
Attach traceback to a WrappedError.
Fixes #44 .
2021-05-10 17:45:00 +01:00
Alex Orlenko
3f55958bdd
Stack assertions review
...
Other minor code and documentation updates
2021-05-02 11:42:03 +01:00
Alex Orlenko
c19f12898d
Replace lazy_static with once_cell
2021-04-27 00:29:38 +01:00
Alex Orlenko
c10169a380
cargo fmt and other minor fixes
2021-04-27 00:29:38 +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
2b2df708f9
Add UserDataFields
API.
...
Provide safe access to UserData metatable and allow to define custom metamethods..
2021-04-27 00:29:37 +01:00
Alex Orlenko
b9589491e4
Improve panic handling (check for twice resumed panics)
2021-04-15 23:04:36 +01:00
Alex Orlenko
335f433df4
Optimize callbacks
2021-02-21 23:52:20 +00:00
Alex Orlenko
6e2b687cb7
Serde support (serialize feature flag)
2020-12-14 00:51:26 +00:00
Alex Orlenko
3d42bc4ca6
Refactor main_state handling
...
Don't allow to set hook if main_state is not available
Remove Lua 5.1 dirty hack
2020-06-07 20:38:19 +01:00
Alex Orlenko
d5c22d989a
Dirty hack to get lua 5.1 main state
2020-06-06 16:07:16 +01:00
Alex Orlenko
9f2d598517
Add clippy check and fix clippy warnings
2020-05-15 01:48:56 +01:00
Alex Orlenko
526e7418d8
Add MetaMethod::Close to support Lua 5.4 to-be-closed variables
2020-05-12 02:14:47 +01:00
Alex Orlenko
539b569ff4
Add Lua 5.4 (rc2) support
2020-05-11 02:43:34 +01:00
Alex Orlenko
7b0e4b4280
Add Send capability to Lua
2020-05-11 02:43:34 +01:00
Alex Orlenko
fe5e87b0f5
Fix bugs with metatable cache:
...
- Don't use thread_local as Lua can be created in one thread and executed in another (in module mode);
- Make per state storage without luaL_ref;
2020-04-28 14:29:14 +01:00
Alex Orlenko
47e8a80c1c
v0.3.0-alpha.1 with async support
...
Squashed commit of the async branch.
2020-04-17 22:39:50 +01:00
Alex Orlenko
fd17a01456
Add Lua 5.2 support
2019-11-30 00:58:41 +00:00
Alex Orlenko
ae677b0918
Move lua 5.1 support under new "lua51" feature
2019-11-04 22:23:15 +00:00
Alex Orlenko
29aa25a48b
Dont take wrapped panic in error_tostring()
2019-11-04 22:23:09 +00:00
Alex Orlenko
c4fd7a9faf
Lua 5.1 support
2019-10-17 17:05:42 +01:00