Jonas Schievink
ff847ea438
__gc would be safe now, reword MetaMethod docs accordingly
2018-01-26 21:31:01 +01:00
Jonas Schievink
0a4ae8d859
Additional MetaMethod docs
2018-01-26 19:44:35 +01:00
Jonas Schievink
79b028419f
create_function docs: mention what returning Err does
2018-01-26 19:24:01 +01:00
Jonas Schievink
67f8e1d49c
Fix rustdoc rendering warning
2018-01-26 18:35:21 +01:00
Jonas Schievink
2d89eb39da
Don't use a StdResult alias for better docs.
...
This is a pretty opinionated change, but I find documentation to be
clearer when using plain old names everybody understands immediately.
2018-01-26 18:32:58 +01:00
kyren
79ba909db0
Experimentally use the failure crate for errors
2018-01-21 20:08:51 -05:00
kyren
685fc12aad
Missed unprotected call to luaL_ref
2017-12-17 16:55:37 -05:00
kyren
42007260ca
Add automatic Lua "user accessible registry" keys
...
Also, during the implementation of this, I noticed a problem with the 0.10
memory safety, which is that luaL_ref is also memory unsafe. I attempted to
change the API to support luaL_ref potentially returning Result, but this change
will cause an enormous amount of API chaos, (just as an example, it becomes
impossible to implement Clone for LuaRef as is). Instead, luaL_ref now is
guarded by gc_guard.
2017-12-17 00:46:22 -05:00
kyren
e6d84a4bb3
Change API names, add unset function
2017-12-16 18:05:53 -05:00
kyren
ad23fe83e0
auto formatting
2017-12-16 17:46:32 -05:00
kyren
bfb6111e0a
API for registry access via string keys only (for now)
...
Also includes some fixes for stack usage and changes an assert_eq to lua_assert
2017-12-16 17:44:13 -05:00
kyren
56c9493f23
spelling fix for my spelling fix
2017-12-05 07:30:34 -05:00
kyren
d609d38675
spelling fixes
2017-12-05 00:12:00 -05:00
kyren
447810364a
extra space
2017-12-04 23:57:08 -05:00
kyren
66a4e9a8e7
Add ExpiredUserData error and avoid what was previously a panic
...
Also make sure that panic messages clearly state that they are internal errors,
so people report them as a bug. Since the only panics left are all internal
errors, just move the internal error message into the panic / assert macros.
2017-12-04 02:50:27 -05:00
kyren
80a98ef29c
Couple of changes:
...
- Update readme, changelog, cargo version number in preparation for release
- Remove panicking behavior on recursive callback calls, add additional error
variant for recursive callback errors.
2017-12-04 01:47:04 -05:00
kyren
0c644e7136
more reorganization in an attempt to shrink the size of lua.rs
2017-12-04 01:04:12 -05:00
kyren
a44b6b5170
Move function and thread into their own modules, auto-formatting
2017-12-04 00:57:39 -05:00
kyren
51838f3509
Include garbage collector error type, remove unnecessary setmetatable wrapper
2017-12-04 00:35:13 -05:00
kyren
d76935e683
I *THINK* this might actually be it, is rlua 'm' safe now?
2017-12-04 00:15:20 -05:00
kyren
d0ff10b528
I believe this is all the external API changes necessary for 'm' safety
2017-12-03 23:45:00 -05:00
kyren
e80e7d4540
missing push_string calls in util
2017-12-03 23:25:03 -05:00
kyren
67e8907f19
Couple of changes in preparation for 'm' safety:
...
- auto formatting
- add gc control to ffi
- add gc_guard to util functions
- use gc_guard to make util error handling functions never trigger __gc
metamethod Lua errors even without __gc metatable wrapper
- sort of a technicality, don't call luaL_requiref outside of the Lua
constructor, as it could trigger the garbage collector when user code has had
a chance to set __gc metamethods. Changes the API to load the debug table.
2017-12-03 23:01:03 -05:00
kyren
0bd676aa81
more refactoring
2017-12-03 21:19:32 -05:00
kyren
c95f591935
remove specific protected functions in favor of generic protect_lua_call
2017-12-03 20:29:41 -05:00
kyren
37a3145ced
missed stack size fix
2017-12-03 20:15:57 -05:00
kyren
a490229f31
More refactoring towards mem error safety
2017-12-03 20:10:45 -05:00
kyren
0909ca34fc
auto formatting
2017-12-03 18:25:53 -05:00
kyren
e41c72d642
more refactoring trying to find a workable path to 'm' error safety
2017-12-03 18:15:31 -05:00
kyren
5742e3f20a
still making small structural changes
...
slowly trying to refactor things until using all the protected calls in
protected_ffi is workable
2017-12-02 19:16:57 -05:00
kyren
f51a822738
auto-formatting
2017-12-02 18:56:14 -05:00
kyren
8a6161b16f
new strategy for protected ffi calls
2017-12-02 18:37:17 -05:00
kyren
b7c80ec066
make some things private
2017-12-02 17:47:00 -05:00
kyren
2b7e89e7c6
move error / panic metatable creation
2017-12-02 17:13:46 -05:00
kyren
fa1703d3d1
split macros into their own file
2017-12-02 17:04:33 -05:00
kyren
8a7e03978b
Experimental protected versions of all used 'm' erroring functions
2017-12-02 15:41:53 -05:00
Timidger
f9c451bd26
Add test ensuring behaviour is correct
2017-11-07 20:13:52 -08:00
Timidger
8ac27877e4
Only get gc on setmetatable if metatable isn't nil
2017-11-07 20:13:30 -08:00
Timidger
a137086064
Check that we have enough room on stack for module
2017-10-29 15:26:40 -07:00
Timidger
71fdca5477
Fixed test to use Lua assert
2017-10-29 15:24:54 -07:00
Timidger
316c6976e4
Added pop after loading lua library
2017-10-29 14:54:55 -07:00
Timidger
26b7901ab3
Added test for loading unsafe debug library in Lua
2017-10-29 14:53:30 -07:00
Timidger
2658433bd1
Added ability to load debug lib, Fixes #52
2017-10-28 20:46:24 -07:00
kyren
892069edd6
Correctly wrap external errors so that Debug trait and Error::cause are correct
2017-10-26 16:49:16 -04:00
kyren
deab88a851
Fix xpcall return values, make the tests a lot better.
2017-10-25 14:51:10 -04:00
kyren
773bf3e9ba
Fix some clippy lints, possible edge case API incompatibility around HashMap
2017-10-24 16:15:57 -04:00
kyren
f634ce1101
It turns out, luaL_ref uses 1 extra internal stack space
...
All my check_stack calls are wrong, and this blows up very easily in situations
with recursive data structures.
2017-10-24 08:53:26 -04:00
kyren
e7661a5c27
auto-formatting
2017-10-23 16:42:20 -04:00
kyren
8c30acec4e
Possibly better stack behavior
2017-10-23 15:17:46 -04:00
kyren
ba183b0119
Fix quadratic behavior in bind
2017-10-23 14:50:47 -04:00