Alex Orlenko
18497f1528
Add library constants support for Luau compiler.
...
Add ability to specify compile-time constants for known library members.
2025-02-11 00:16:22 +00:00
Alex Orlenko
c1f8abba9e
Do not allow recursive warnings (Lua 5.4)
2025-02-09 15:08:52 +00:00
Alex Orlenko
d1a587f49a
Wrap hooks in refcounter instead of box, same as previously.
...
This allows to obtain independent clone of closure.
Ensure that stack is always clean when running thread hook.
2025-02-08 22:11:11 +00:00
Alex Orlenko
5bbd23ed1a
Fix hook tests
2025-02-08 11:51:38 +00:00
Alex Orlenko
74b4601b48
Rework Lua hooks:
...
- Support global hooks inherited by new threads
- Support thread hooks, where each thread can have its own hook
This should also allow to enable hooks for async calls.
Related to #489 #347
2025-02-07 22:42:17 +00:00
Joel Natividad
20f7ce097d
Fix typos ( #522 )
...
* fix various typos in the codebase
* fix typos in CHANGELOG.md
2025-02-05 16:16:20 +00:00
Alex Orlenko
fca38a6637
Imporove BorrowedStr/BorrowedBytes ergonomic.
...
Implement `FromLua` and `IntoLua` for these types to allow working with them directly.
2025-01-30 23:07:02 +00:00
Alex Orlenko
cdd6a99136
Support Thread::resume_error call (Luau)
...
This method uses Luau-specific C API extension `lua_resumerror`
that allow to throw an error immediately when resuming a thead.
Closes #500 #513
2025-01-28 22:57:26 +00:00
Alex Orlenko
21d39a069d
Pass &Scope instead of &mut Scope to Lua::scope closure.
...
It was a leftover from an experimental implementation that has been removed.
2025-01-28 18:23:18 +00:00
Alex Orlenko
58965c6255
Move lifetime from AsChunk<'a> to AsChunk::source
2025-01-28 18:17:29 +00:00
Alex Orlenko
8574682ffc
Improve From/Into Lua char conversion
2025-01-28 10:41:10 +00:00
tk
47bc372096
impl FromLua/IntoLua for char (#516 )
2025-01-28 10:10:28 +00:00
Alex Orlenko
d376cb9403
Enable Thread::reset() for all Lua versions
2025-01-28 10:08:16 +00:00
Alex Orlenko
ea5ecccf02
Change AsyncThread<A, R> to AsyncThread<R>.
...
Push arguments in `Thread::into_async()` to the thread during the call instead of first poll.
The pushed arguments will be automatically used on resume.
Fixes #508 and relates to #500 .
2025-01-28 10:08:08 +00:00
Radiant
b5d38ab2e3
Set Default for LuaValue to be nil. ( #512 )
2025-01-19 23:52:58 +00:00
Alex Orlenko
cd4091f64d
Allow exhaustive match on Value.
...
It was not possible because `ValueRef` variant in `Value::Other` was private.
Closes #502 and #503
2024-12-10 23:37:19 +00:00
Alex Orlenko
91e069a77e
Optimize (and simplify) protected mode for Rust function calls
2024-12-07 00:04:12 +00:00
Alex Orlenko
cacd3dc70f
Add Table::set_safeenv method (Luau)
2024-12-04 10:40:49 +00:00
Alex Orlenko
5fd96c7908
Don't run GC finalizers on ref thread.
...
If this happen then we don't have full access to the ref thread stack.
Fixes #491
2024-11-30 01:00:31 +00:00
Alex Orlenko
7a3f19b857
Ensure that buffer with Luau compiled code is always freed
2024-11-29 13:36:51 +00:00
Alex Orlenko
55a5d7ef10
Protect Lua(u) during chunk loading if memory limit is enforced
...
Relates to #488
2024-11-27 00:34:21 +00:00
Alex Orlenko
af31dbd180
Use c string literal in few places
2024-11-25 22:53:59 +00:00
Alex Orlenko
9ae3cb0a7c
Add doc about possible chunk name prefixes
2024-11-24 12:00:06 +00:00
Alex Orlenko
fc1c80c142
Mark Chunk::wrap as non-public
2024-11-22 20:03:17 +00:00
Alex Orlenko
ee7ced6334
Add Chunk::wrap method
2024-11-22 14:40:52 +00:00
Alex Orlenko
d8307d0e4c
Reduce visibility of Wrapped* structs
2024-11-22 13:08:57 +00:00
Alex Orlenko
bf9fcc5aca
Simplify WrappedString
2024-11-22 13:06:50 +00:00
Alex Orlenko
7ce6b97da9
Add String::wrap method to wrap arbitrary AsRef<[u8]>
2024-11-22 11:48:20 +00:00
Alex Orlenko
4ef0d583fc
impl Send for UserDataTypeId (in send mode)
2024-11-16 01:56:18 +00:00
Alex Orlenko
3bfaee4ecc
Delay "any" userdata metatable creation until first instance
2024-11-16 01:47:04 +00:00
Alex Orlenko
89b68e2a24
Remove generic from RawLua::push_userdata_metatable.
...
This should help to reduce amount of generated code.
2024-11-16 01:44:17 +00:00
Alex Orlenko
cbf805f492
Avoid ptr->usize->ptr conversion to comply strict provenance
2024-11-15 21:47:19 +00:00
Alex Orlenko
8c889cc353
Add String::display method
2024-11-09 14:24:43 +00:00
Alex Orlenko
958abd050e
Update String::to_string_lossy doc
2024-11-09 14:10:45 +00:00
Alex Orlenko
b34b90eca3
Fix wrong formatting table with string keys that are numbers
2024-11-09 13:51:55 +00:00
Alex Orlenko
7aad0adcb4
Update links to luau.org
2024-11-09 12:48:15 +00:00
Alex Orlenko
a3cd25db7a
Support Luau 0.650 native vector library
2024-11-09 12:44:00 +00:00
Alex Orlenko
a4bfeb7752
clippy
2024-11-09 12:38:05 +00:00
vhyrro
0fda512938
feat(table): improve pretty-printing for simple tables and lists ( #478 )
2024-11-09 12:08:49 +00:00
Alex Orlenko
58e0661086
Merge Scope::attach_destructor into Scope::seal_userdata
2024-11-08 15:04:46 +00:00
Alex Orlenko
c7094d470f
Add Scope::create_any_userdata to create Lua objects from any non-static Rust types.
2024-11-07 19:44:18 +00:00
Alex Orlenko
a7d0691e10
Add AnyUserData::destroy method
2024-11-07 16:12:20 +00:00
Alex Orlenko
05778fbe6f
Don't store and use wrong main Lua state in module mode (Lua 5.1/JIT only).
...
When mlua module is loaded from a non-main coroutine we store a reference to it to use later.
If the coroutine is destroyed by GC we can pass a wrong pointer to Lua that will trigger a segfault.
Instead, set main_state as Option and use current (active) state if needed.
Relates to #479
2024-11-04 15:48:22 +00:00
Alex Orlenko
1f32754f05
Relax UserDataBorrowRef restrictions to allow recursive calls
2024-11-03 12:18:00 +00:00
Alex Orlenko
c2eab173c5
Add userdata-wrappers feature
...
This feature allow to opt into `impl UserData` for `Rc<T>`/`Arc<T>`/`Rc<RefCell<T>>`/`Arc<Mutex<T>>` where `T: UserData`
Close #470
2024-11-03 11:48:47 +00:00
Alex Orlenko
bb311349ec
Switch between shared and exclusive lock for UserDataRef depending if T: Sync or not.
2024-11-02 10:38:25 +00:00
Alex Orlenko
928e1d9221
Revert &Scope to &mut Scope
2024-10-31 18:41:47 +00:00
Alex Orlenko
5b8681dcf2
Add Scope::add_destructor to attach custom destructors
2024-10-31 14:35:21 +00:00
Alex Orlenko
6066089cc1
Skip setting Send/Sync in non-send mode for UserDataCell
2024-10-30 23:32:13 +00:00
Alex Orlenko
a8d5f23818
Add Lua::try_app_data_ref and Lua::try_app_data_mut
2024-10-30 15:22:55 +00:00