Alex Orlenko
d9c139b55f
Rust 2024
2026-01-29 10:33:28 +00:00
Alex Orlenko
5d27cb91b2
Add optional __namecall optimization for Luau
...
Add `UserDataRegistry::enable_namecall()` hint to set `__namecall` metamethod to enable Luau-specific method resolution optimization.
2025-09-02 00:53:12 +01:00
Alex Orlenko
e1ee4058a6
Add new benchmark to measure complex userdata method calls
2025-08-28 23:56:03 +01:00
Alex Orlenko
df0a44d405
Make Lua reference values cheap to clone
...
Instead of locking the VM and making a copy on auxiliary thread, track number of references using Rust ref counter.
This should also help reducing number of used references (they are limited to to 1M usually) on auxiliary thread.
2025-08-20 12:05:37 +01:00
Alex Orlenko
9931709ecd
Remove explicit lifetime from UserDataMethods and UserDataFields traits.
...
Pass `'static` arguments to async functions and require `'static` Future.
(in future we can use async closures to make it more elegant).
2024-08-23 00:10:29 +01:00
Alex Orlenko
4082b354fe
clippy
2024-08-01 00:55:10 +01:00
Alex Orlenko
3641c98959
Prepare for Rust 2024 edition (see rust-lang/rust#123748 )
...
Replace `IntoLua(Multi)` generic with positional arg (impl trait) where possible
This allow to shorten syntax from `a.get::<_, T>` to `a.get::<T>`
2024-07-31 23:42:43 +01:00
Alex Orlenko
b4892c228c
Add rustfmt.toml
2024-07-31 13:42:37 +01:00
Alex Orlenko
7221051683
Refactor:
...
- Remove the rest of `'lua` lifetimes
- Remove Owned types
2024-07-31 13:42:35 +01:00
Alex Orlenko
c23fa5aa6c
Optimize RegistryKey internals
...
- Store single `AtomicI32` field instead of pair i32,AtomicBool
- Make creation faster by skipping intermediate `Value` layer
Add new `RegistryKey::id()` method to return underlying identifier
2024-06-18 16:09:06 +01:00
Alex Orlenko
6e6c73e4c7
Add deserialize json benchmark
2024-03-23 22:31:42 +00:00
Alex Orlenko
a79840afc9
Suppress Rust 1.77 dead_code false warnings.
2024-03-23 11:42:46 +00:00
Alex Orlenko
34db5f985e
Refactor benchmarks
2024-02-11 17:48:25 +00:00
Alex Orlenko
f5021daaea
Fix typo in table_traversal_sequence becnhmark
2023-10-12 11:07:00 +01:00
Alex Orlenko
7d0aa7c01b
Add "table traversal sequence" benchmark
2023-10-12 09:49:36 +01:00
Alex Orlenko
2a3980ef62
Add Table::for_each method for fast (faster than pairs()) table pairs traversal.
2023-10-10 12:52:26 +01:00
Alex Orlenko
37d722d71c
Add table traversal benchmark
2023-10-10 11:00:58 +01:00
Alex Orlenko
6e3af593f6
Add serde benchmark
2023-10-10 00:25:47 +01:00
Alex Orlenko
e858384cd4
Add table get/set benchmark
2023-08-03 10:37:39 +01:00
Alex Orlenko
399e469328
Update "async userdata method" benchmark
2023-06-21 22:23:43 +01:00
Alex Orlenko
72b9209ae9
Rename wrapped_failure/thread cache to pool
2022-12-30 21:48:12 +00:00
Alex Orlenko
fa99f62a99
Fix __index and __newindex wrappers for Luau
2022-03-21 01:08:40 +00:00
Tarik02
d4f8dce597
Fix async userdata __index, __newindex metamethods
2022-03-20 20:03:47 +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
41aae83304
Optimize callback creation
...
Attach only one upvalue to callbacks rather than two.
This leads to less lookup to Lua registry.
2021-06-30 16:50:50 +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
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
94670e3fdb
rustfmt
2021-02-22 20:13:56 +00:00
Alex Orlenko
6a77b5f003
Update benchmarks:
...
- Refactor
- Add async benchmarks
2021-02-21 18:48:45 +00:00
Alex Orlenko
afc41ab23c
Add serialization example & update others
2020-12-29 21:39:34 +00:00
Alex Orlenko
4a802c1373
Fix benchmarks
2019-11-04 22:23:15 +00:00
Alex Orlenko
b23ee6a162
cargo fmt
2019-09-29 12:56:03 +01:00
kyren
6a5ec6b387
cargo fmt
2018-09-24 22:13:42 -04:00
kyren
2e1bdb64c0
format with up-to-date rustfmt
2018-08-05 09:51:39 -04:00
kyren
ee23f199f0
Remove stack_guard function and instead just use StackGuard directly
2018-03-12 13:13:44 -04:00
kyren
7b2f7a2932
Add a simple userdata benchmark
2018-03-12 12:48:20 -04:00
kyren
84ee394b1d
Additional benchmarks
2018-03-11 17:50:17 -04:00
kyren
a5377b959f
Add some more benchmarks
2018-03-11 14:26:26 -04:00
kyren
964666e11b
Use criterion for benchmarking, add some simple benchmarks
2018-03-10 10:31:57 -05:00