Alex Orlenko
5293b8d6d2
Add `Thread::reset()` for luajit/lua54
2021-05-05 11:11:32 +01:00
Alex Orlenko
7541b6f3f3
Remove deprecated `AnyUserData::has_metamethod()`
2021-05-04 23:57:47 +01:00
Alex Orlenko
205510a540
Update sys align code
2021-05-04 23:55:24 +01:00
Alex Orlenko
2250421438
Fix clippy warnings
2021-05-04 23:42:33 +01:00
Alex Orlenko
8e57e6fa5a
v0.6.0-beta.1
2021-05-04 00:43:26 +01:00
Alex Orlenko
f2dbbb091f
Update dependencies
2021-05-04 00:31:51 +01:00
Alex Orlenko
13cfb4bd51
Add CHANGELOG for v0.6.0-beta.1
2021-05-03 23:36:18 +01:00
Alex Orlenko
33ebacab49
Update README
2021-05-03 22:33:18 +01:00
Alex Orlenko
3829b72212
Update code docs
2021-05-03 22:33:18 +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
585c0a25d8
Replace 'Thread already finished' error with common `Error::CoroutineInactive`
2021-05-03 13:11:59 +01:00
Alex Orlenko
64346ce56c
Implement/Derive `Debug` for Lua and few other structs
2021-05-03 13:05:43 +01:00
Alex Orlenko
108682cc71
Store `safe` property in Extra state to inherit into Lua structs made from pointers
2021-05-03 12:40:14 +01:00
Alex Orlenko
4af7bcf0d9
Implement ToLua/FromLua for Box<str> and Box<[T]>
2021-05-03 12:22:11 +01:00
Alex Orlenko
1bb3c5c19f
Fix typo in README
2021-05-02 23:53:48 +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
26d8d899f2
Allocate Waker slot in Registry in re-use it (instead of creating new userdata for it)
2021-05-02 13:04:02 +01:00
Alex Orlenko
67bc0b1196
Make AsyncPollPending internal value as LightUserData
2021-05-02 12:06:32 +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
463fc646bc
Refactor UserDataCell
2021-04-27 21:55:31 +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
0625991a48
Update github action to fix modules test on Windows (lua53 -> lua54)
2021-04-27 10:38:20 +01:00
Alex Orlenko
269ef9c55d
Fix lua51 scope compilation
2021-04-27 10:11:37 +01:00
Alex Orlenko
f5b88624ce
Hide Deserializer inner fields
...
Improve documentation
2021-04-27 10:04:18 +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
c19f12898d
Replace lazy_static with once_cell
2021-04-27 00:29:38 +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
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
c95ac32741
Add inline(always) to some compat53 functions
2021-04-27 00:29:37 +01:00
Alex Orlenko
14169eadb1
Include nightly to github CI tests
2021-04-27 00:29:37 +01:00
Alex Orlenko
5a7ad9f7cd
Fix some clippy warnings & minor changes
2021-04-27 00:29:37 +01:00
Alex Orlenko
decb5b9e37
Make MetaMethod::name() public
...
Tests for UserDataMetatable::pairs()
2021-04-27 00:29:37 +01:00
Alex Orlenko
1635903d3f
Improve/fix scoped UserData drop
2021-04-27 00:29:37 +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
cb1ac28f2a
v0.5.4
2021-04-20 02:05:05 +01:00
Alex Orlenko
3e7f25670a
Don't read lua.h from build script (was not used)
2021-04-20 02:05:00 +01:00
Alex Orlenko
0d404ce4c3
Don't fail CI on coverage
2021-04-16 22:43:21 +01:00
Alex Orlenko
e26cec5db9
Drop 'feature(link_args)' (removed from nightly). Don't run tests for LuaJIT 2.0.5
2021-04-16 22:27:28 +01:00
Alex Orlenko
0bd36b42e7
Make error::Error non_exhaustive
2021-04-16 22:10:10 +01:00
Alex Orlenko
e0da6ac929
Hide raw_sequence_values_by_len under async/serialize feature flags
2021-04-16 22:09:49 +01:00
Alex Orlenko
0c7db4916c
Serialize only known (registered) userdata.
...
This reverts commit 7332c6a
.
Non-static userdata is a special case and can cause segfault if try to serialize it.
Now it should be safe, plus I added non-static userdata destructor to generate better error messages
in case of accessing destructed userdata.
2021-04-16 22:01:55 +01:00
Alex Orlenko
b9589491e4
Improve panic handling (check for twice resumed panics)
2021-04-15 23:04:36 +01:00
Alex Orlenko
58cb371f06
Add rerun-if-changed instructions to build script
2021-04-14 22:33:23 +01:00
Alex Orlenko
8add60b019
Don't check LUA_LIB_NAME if it's not needed
2021-04-14 22:25:49 +01:00
Alex Orlenko
c363fb9288
v0.5.3
2021-03-04 00:01:06 +00:00
Alex Orlenko
3900e23839
Fix compilation warnings on nightly
2021-03-03 23:36:28 +00:00
Alex Orlenko
726fde7e1f
Optimise async callbacks (polling)
...
call async Rust callback [sum] 3 10
time: [59.338 us 59.729 us 60.097 us]
change: [-10.336% -8.6212% -6.8003%] (p = 0.00 < 0.05)
Performance has improved.
2021-03-03 23:21:56 +00:00
Alex Orlenko
7cb9c4f39c
Fix bug in returning nil-prefixed multi values from async function
2021-03-03 22:32:22 +00:00
Alex Orlenko
b93ace0224
v0.5.2
2021-02-27 19:32:25 +00:00
Alex Orlenko
5f37bf812d
Fix/whitelist some clippy warnings
2021-02-27 19:23:08 +00:00
Alex Orlenko
1f7e760d20
Add codecov coverage report
2021-02-27 18:03:53 +00:00
Alex Orlenko
90bea4aa34
Update README and keywords
2021-02-27 13:28:47 +00:00
Alex Orlenko
7775b4a99c
Bump copyright year
2021-02-26 10:35:00 +00:00
Alex Orlenko
1d9cda10eb
Add ToLua implementation for Cow<str> and Cow<CStr>
2021-02-26 10:23:36 +00:00
Alex Orlenko
7332c6a28c
Remove `registered_userdata_mt` check
2021-02-22 20:38:36 +00:00
Alex Orlenko
94670e3fdb
rustfmt
2021-02-22 20:13:56 +00:00
Alex Orlenko
335f433df4
Optimize callbacks
2021-02-21 23:52:20 +00:00
Alex Orlenko
2aed548747
Fix scoped async destruction of partially polled futures
2021-02-21 23:52:07 +00:00
Alex Orlenko
6a77b5f003
Update benchmarks:
...
- Refactor
- Add async benchmarks
2021-02-21 18:48:45 +00:00
Alex Orlenko
aeb66115f7
v0.5.1
2021-01-20 11:04:03 +00:00
Alex Orlenko
ce873a40bf
Update CHANGELOG
2021-01-20 11:00:47 +00:00
Alex Orlenko
8de75d1c18
Update tokio to 1.0 for async examples
2021-01-20 10:47:27 +00:00
Alex Orlenko
b6ff501b8c
Fix numeric types conversion for 32bit lua. Fix #27
2021-01-20 10:46:23 +00:00
Alex Orlenko
0e73ae18f4
Update CI
2021-01-16 13:32:38 +00:00
Alex Orlenko
e62fd400d7
Remove unused exports from glue.{c,rs} && Fix some clippy warnings
2021-01-16 13:31:45 +00:00
Alex Orlenko
1c79f646de
Update README
2021-01-16 13:31:34 +00:00
Alex Orlenko
7f5fd36a2b
Merge pull request #26 from wez/cross
...
Support cross compilation
2021-01-14 15:35:35 +00:00
Wez Furlong
faf19e4a06
Allow luajit to build in the pointer size cross compilation case
2021-01-13 20:01:12 -08:00
Wez Furlong
24d9099ef7
install more bits for cross compilation jobs
2021-01-13 10:38:08 -08:00
Wez Furlong
84003f31e7
Add CI for cross compilation cases
2021-01-13 10:18:53 -08:00
Wez Furlong
e0d9ec41e2
Support cross compilation
...
This commit teaches the build script to recognize when it is
cross-compiling and switch to an alternative approach for generating
the `glue.rs` module.
It defaults to the equivalent logic found in the lua headers to
set the default types and parameters.
Notably: it doesn't statically produce the default lua paths as we
cannot know these without either executing the code (not guaranteed
possible when cross compiling) or regexing out the paths from the
headers (a bit brittle). An alternative approach might be to use
something like `lazy_static` to ask the library for its compiled in
values once at runtime.
I've tested this with:
```
cargo build --target armv7-unknown-linux-gnueabihf --features lua51,vendored
cargo build --target armv7-unknown-linux-gnueabihf --features lua52,vendored
cargo build --target armv7-unknown-linux-gnueabihf --features lua53,vendored
cargo build --target armv7-unknown-linux-gnueabihf --features lua54,vendored
cargo build --target armv7-unknown-linux-gnueabihf --features luajit,vendored
```
All except luajit compile. Luajit itself doesn't cross compile, so I
don't think we can ever reasonably get that to work.
I haven't tried to run any of this yet; my use case is actually for mac
(https://github.com/wez/wezterm/pull/426 ) so I need to commit this and
try patching it in over there before I can see if that truly worked
end-to-end.
refs: https://github.com/khvzak/mlua/issues/14
2021-01-13 09:55:53 -08:00
Alex Orlenko
618874ef3c
v0.5.0
2020-12-31 13:39:42 +00:00
Alex Orlenko
9f82cbe0c5
Update documentation
2020-12-31 13:39:38 +00:00
Alex Orlenko
1a81f8d447
Update compile tests
2020-12-29 23:20:06 +00:00
Alex Orlenko
bedd430eb5
Re-export mlua_derive
2020-12-29 22:26:15 +00:00
Alex Orlenko
afc41ab23c
Add serialization example & update others
2020-12-29 21:39:34 +00:00
Alex Orlenko
c5d0ccc433
Add `reqwest` http client example to fetch json
2020-12-28 15:21:45 +00:00
Alex Orlenko
ce8955f5b9
Don't try to disable c modules without `package` loaded. Fix #24
2020-12-22 23:05:08 +00:00
Alex Orlenko
368c4428eb
Wider lua-src and luajit-src versions
2020-12-14 00:51:35 +00:00
Alex Orlenko
6e2b687cb7
Serde support (serialize feature flag)
2020-12-14 00:51:26 +00:00
Alex Orlenko
661f8e592a
Update num-traits dependency
...
Fix f32-to-f64 conversion tests
2020-11-04 21:22:24 +00:00
Alex Orlenko
c8a7aa947c
Update compile tests (temporary set TRYBUILD=overwrite)
2020-10-27 23:39:52 +00:00
Alex Orlenko
a52135b62d
Update compile tests error messages
2020-09-28 23:24:53 +01:00
Alex Orlenko
68378a3957
Merge pull request #15 from kaikalii/master
...
impl `ToLua` and `FromLua` for `HashSet` and `BTreeSet`
2020-09-28 23:14:17 +01:00
Kai Schmidt
c65058a40a
impl `ToLua` and `FromLua` for `HashSet` and `BTreeSet`
2020-09-27 17:54:47 -07:00
Alex Orlenko
93d63cef35
v0.4.2
2020-08-17 12:17:08 +01:00
Alex Orlenko
b743245aba
Update CHANGELOG
2020-08-17 11:14:40 +01:00
Alex Orlenko
a172c021c9
Update `set_memory_limit` doc
2020-07-30 12:16:25 +01:00
Alex Orlenko
de2c5cd9a9
Fix compilation warnings on nightly rust
2020-07-28 21:10:55 +01:00
Alex Orlenko
d201beadc9
Add ChunkMode enum to mark chunks as text or binary
2020-07-28 21:04:21 +01: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
5c8a5e0a5a
Merge pull request #9 from HybridEidolon/bytecode-chunks
...
Make Lua::load load binary chunks when unsafe
2020-07-27 14:19:33 +01:00
Alex Orlenko
e07c53eafe
Update compile tests (2)
2020-07-27 13:51:21 +01:00
Alex Orlenko
ad619390e1
Run compile tests on macos (was ubuntu-18.04)
2020-07-27 11:34:48 +01:00
Alex Orlenko
350602ab6e
Update `lua-src` dependency to 5.4.0
2020-07-27 10:52:28 +01:00