Alex Orlenko
3b6564c02a
Update compile tests (messages)
2021-11-27 13:42:22 +00:00
Alex Orlenko
440862de38
Update tests
2021-11-23 19:12:27 +00:00
Alexander Polakov
d49757c7db
Add unload() to remove module
2021-11-23 18:36:57 +03:00
Alex Orlenko
170818c469
Add call() function to TableExt to call tables with __call metamethod as functions
2021-11-21 23:47:45 +00:00
Alex Orlenko
e2ebe65306
Add get_named_user_value and set_named_user_value to AnyUserData
2021-11-21 23:42:47 +00:00
Alex Orlenko
0ef709672d
Add set_warning_function/remove_warning_function/warning functions to Lua for 5.4
...
This utilizes Lua 5.4 warnings system (https://www.lua.org/manual/5.4/manual.html#pdf-warn )
2021-11-16 12:05:34 +00:00
Alex Orlenko
41503b4fb8
Update callback_error_ext (+ fix callback multi states handling)
2021-11-16 11:53:51 +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
8af1304fd0
Add Lua::inspect_stack to get information about the interpreter runtime stack.
...
This functionality is provided by `lua_getstack`.
2021-11-09 14:18:14 +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
204eedde3c
Merge branch 'dev'
2021-11-07 13:07:22 +00:00
Alex Orlenko
fbc2973aff
Fix recursive tables serialization when using serde::ser::Serialize
...
implementation for Table.
Fixes #98 .
2021-11-06 21:12:00 +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
d88a4282c7
Replace macro-based implementation ToLua for arrays to const generics
2021-11-04 00:59:39 +00:00
Alex Orlenko
d7d987fa14
Add async meta methods for all Lua except 51
2021-11-04 00:57:49 +00:00
Alex Orlenko
4d3ac6d8c5
Add new "application data" api
2021-10-19 11:45:39 +01:00
Alex Orlenko
559f9e6c6b
Add target.aarch64-apple-darwin conf to module examples
2021-10-11 18:07:34 +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
c8c64a1b5a
Add serializing i128/u128 types.
...
Fixes #81 .
2021-10-04 23:20:11 +01:00
Alex Orlenko
bdd3c923ba
Fix table traversal used in recursion detection.
...
This fixes serializing same table multiple times within a parent table.
2021-09-28 16:41:39 +01:00
Alex Orlenko
53f873a482
Update compile tests error messages
2021-09-16 00:49:17 +01:00
Alex Orlenko
fc1fe2c15e
Add DeserializeOptions struct to control deserializer behavior.
...
This solves #74 and provides a way to deserialize a Lua globals table.
2021-09-15 23:45:08 +01:00
Alex Orlenko
d906405818
Simplify interface of hook::HookTriggers
2021-08-18 18:49:17 +01:00
Alex Orlenko
9f02a9ca09
Add Debug::event() to the hook's Debug structure
2021-08-17 15:17:03 +01:00
Alex Orlenko
59253410bb
Update trybuild messages
2021-07-13 11:59:33 +01:00
Alex Orlenko
1fe583027b
Add new functions: lua.load_from_function() and lua.create_c_function()
...
This should be useful to register embedded C modules to Lua state.
Provides a solution for #61
2021-07-05 00:03:18 +01:00
Alex Orlenko
24bbd62564
Fix converting Lua sequence table to HashSet/BTreeSet
2021-06-25 01:49:09 +01:00
Alex Orlenko
e4daff8c16
Add limited recursion test to increase coverage
2021-06-21 12:30:17 +01:00
Alex Orlenko
242bdafa75
More tests for arc/rc wrapped userdata
2021-06-19 00:03:09 +01:00
Alex Orlenko
b84d1bd65f
Update test names
2021-06-18 23:13:56 +01:00
Alex Orlenko
bf286751fa
Improve code coverage
2021-06-17 00:47:15 +01:00
Alex Orlenko
3b94b4e86f
Implement Hash for RegistryKey. Closes #57
2021-06-16 12:12:42 +01:00
Alex Orlenko
6e52bb7e65
Fix clippy warnings && tests
2021-06-13 23:30:54 +01:00
Alex Orlenko
08ffeb0ca9
Improve module mode:
...
- Don't hide module function inside `luaopen_%` function.
- Raise Lua exception instead of panic if module function returns error.
2021-06-13 22:38:51 +01:00
Alex Orlenko
821f1125b6
Add String::to_string_lossy
2021-06-04 00:16:40 +01:00
Alex Orlenko
a944f4ad6f
Implement UserData for Rc<RefCell>/Arc<Mutex>/Arc<RwLock> wrappers
2021-06-03 16:42:55 +01:00
Alex Orlenko
e8de2a458a
Allow multiple entrypoints in a single module share the same Lua state.
...
Previously it would initialize different Lua instances.
Fixes #49 .
2021-05-18 20:07:34 +01:00
Alex Orlenko
3e03f4201c
Add chunk! macro support
2021-05-05 22:13:51 +01:00
Alex Orlenko
5293b8d6d2
Add Thread::reset() for luajit/lua54
2021-05-05 11:11:32 +01:00
Alex Orlenko
af67971e0d
Make SerializeOptions non_exhaustive.
...
Add builder implementation similar to `LuaOptions` to set individual options.
2021-05-03 22:33:12 +01:00
Alex Orlenko
0f4bcca7ce
Add LuaOptions to customize Lua/Rust behaviour.
...
The only option is `catch_rust_panics` to optionally disable catching Rust panics via pcall/xpcall.
2021-05-03 21:33:49 +01:00
Alex Orlenko
4af7bcf0d9
Implement ToLua/FromLua for Box<str> and Box<[T]>
2021-05-03 12:22:11 +01:00
Alex Orlenko
a4567cb5f7
Improve growing the auxiliary stack of the ref thread:
...
Try to double size first, if not fulfilled try halving in a loop till 0.
Fix unwinding after panic in ref_stack_pop.
Add test to check the stack exhaustion.
2021-05-02 23:26:02 +01:00
Alex Orlenko
e8505b5239
Change signature of Function::dump() to remove Result
2021-05-02 11:48:42 +01:00
Alex Orlenko
b5f1325f2f
Store nonstatic UserData pointer in self userdata (instead of metatable)
2021-04-27 17:06:37 +01:00
Alex Orlenko
2fae94586d
Remove Result from lua.null() and lua.array_metatable(). They never fail.
2021-04-27 00:38:13 +01:00
Alex Orlenko
bc81d1016f
Add SerializeOptions to to change default Lua serializer behaviour
2021-04-27 00:35:53 +01:00
Alex Orlenko
c7541ef7d3
More tests
2021-04-27 00:29:38 +01:00
Alex Orlenko
41a1a0d15a
Add more checks for destructed userdata in AnyUserData
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