Commit Graph

116 Commits

Author SHA1 Message Date
kyren 7436e84e93 make sure other table methods do not trigger metamethods and errors 2017-06-05 04:10:54 -04:00
kyren cb7c55f742 Don't need pub on internal function 2017-06-05 01:51:48 -04:00
kyren 1c0b1014ee Improve performance of create_table / create_array_table 2017-06-05 01:46:45 -04:00
kyren 9aed99e3e3 atpanic function was not a good idea, it's not sound
It crosses the C api boundary, the only proper way to panic would be to actually
error guard everywhere, aborting is fine.
2017-06-05 01:05:41 -04:00
kyren b3218137e1 Somewhat smarter strategy for error_guard calls, less ungodly slow.
Also add raw_length table function
2017-06-05 00:41:48 -04:00
kyren 47d4ea62ff Handle unprotected lua errors SOMEWHAT more elegantly
There should be drastically less ways to cause unprotected lua errors now, as
the LuaTable functions which were trivial to cause unprotected errors are now
protected. Unfortunately, they are protected in a pretty slow, terrible way
right now, but it at least works.

Also, set the atpanic function in lua to call a proper rust panic instead.
2017-06-05 00:03:39 -04:00
kyren e265633fb3 Callback versions of table functions 2017-05-26 23:49:12 -04:00
kyren 53b001cfce doc update again to test submodules 2017-05-25 12:12:12 -04:00
kyren c88762e90f Small doc update (secretly this is just to test submodules) 2017-05-25 12:01:12 -04:00
kyren acd0611692 Make Lua::to / Lua::from operate the correct way around
I know that Lua::to uses FromLua and Lua::from uses ToLua, but it only
makes sense that Lua::from(42) would return the LuaValue for 42, and
that Lua::to::<i64>(v) would convert the given lua value TO an integer.
The way it was just incredibly backwards.
2017-05-25 00:47:48 -04:00
kyren 87a395206d Correct checking of LuaRef origin, support lightuserdata
All lua types should now be at least somewhat usable from rust, if
incompletely so.  Any lua value should be readable in Rust as a
LuaValue, pop_value should never panic except in internal logic errors.
2017-05-25 00:43:35 -04:00
kyren 0111625d17 Basic coroutine support, currently very slightly broken
There is no longer any protection in passing LuaValue between
independent states, it is being re-added
2017-05-24 23:29:57 -04:00
kyren 5c0f183a52 Improved error handling and formatting
Now prints lua backtraces on callback errors as well.  This could be
controlled with LUA_BACKTRACE or just RUST_BACKTRACE or similar.
2017-05-22 14:25:36 -04:00
kyren b15ee9053e Update to use hlist_macro for hlist macros.
You will type hlist! hlist_pat! and HList! so often that every character
counts.  Apologize for the API churn in the README.
2017-05-22 11:16:34 -04:00
kyren edb86bdeb7 Doc updates, remove unused functions 2017-05-21 22:32:16 -04:00
kyren 065c69894a Initial import 2017-05-21 19:50:59 -04:00