- fix "deallocating None" crash while iterating over Lua tables in Python code
- support for filtering attribute access to Python objects for Lua code
- fix: setting source encoding for Lua code was broken
- fix serious resource leak when creating multiple LuaRuntime instances
- portability fix for binary module importing
- fix iteration by returning
Py_None
object forNone
instead ofnil
, which would terminate the iteration - when converting Python values to Lua, represent
None
as aPy_None
object in places wherenil
has a special meaning, but leave it asnil
where it doesn't hurt - support for counter start value in
python.enumerate()
- native implementation for
python.enumerate()
that is several times faster - much faster Lua iteration over Python objects
- new helper function
python.enumerate()
in Lua that returns a Lua iterator for a Python object and adds the 0-based index to each item. - new helper function
python.iterex()
in Lua that returns a Lua iterator for a Python object and unpacks any tuples that the iterator yields. - new helper function
python.iter()
in Lua that returns a Lua iterator for a Python object. - reestablished the
python.as_function()
helper function for Lua code as it can be needed in cases where Lua cannot determine how to run a Python function.
- dropped
python.as_function()
helper function for Lua as all Python objects are callable from Lua now (potentially raising aTypeError
at call time if they are not callable) - fix regression in 0.13 and later where ordinary Lua functions failed to print due to an accidentally used meta table
- fix crash when calling
str()
on wrapped Lua objects without metatable
- support for loading binary Lua modules on systems that support it
- relicensed to the MIT license used by LuaJIT2 to simplify licensing considerations
- fix Cython generated C file using Cython 0.13
- fixed undefined behaviour on
str(lua_object)
when the object's__tostring()
meta method fails - removed redundant "error:" prefix from
LuaError
messages - access to Python's
python.builtins
from Lua code - more generic wrapping rules for Python objects based on supported protocols (callable, getitem, getattr)
- new helper functions
as_attrgetter()
andas_itemgetter()
to specify the Python object protocol used by Lua indexing when wrapping Python objects in Python code - new helper functions
python.as_attrgetter()
,python.as_itemgetter()
andpython.as_function()
to specify the Python object protocol used by Lua indexing of Python objects in Lua code - item and attribute access for Python objects from Lua code
- fix Lua stack leak during table iteration
- fix lost Lua object reference after iteration
- error reporting on Lua syntax errors failed to clean up the stack so that errors could leak into the next Lua run
- Lua error messages were not properly decoded
- much faster locking of the LuaRuntime, especially in the single threaded case (see http://code.activestate.com/recipes/577336-fast-re-entrant-optimistic-lock-implemented-in-cyt/)
- fixed several error handling problems when executing Python code inside of Lua
- fixed Python special double-underscore method access on LuaObject instances
- Lua coroutine support through dedicated wrapper classes, including Python iteration support. In Python space, Lua coroutines behave exactly like Python generators.
- support for returning multiple values from Lua evaluation
repr()
support for Lua objectsLuaRuntime.table()
method for creating Lua tables from Python space- encoding fix for
str(LuaObject)
LuaRuntime.require()
andLuaRuntime.globals()
methods- renamed
LuaRuntime.run()
toLuaRuntime.execute()
- support for
len()
,setattr()
and subscripting of Lua objects - provide all built-in Lua libraries in
LuaRuntime
, including support for library loading - fixed a thread locking issue
- fix passing Lua objects back into the runtime from Python space
- Python iteration support for Lua objects (e.g. tables)
- threading fixes
- fix compile warnings
- explicit encoding options per LuaRuntime instance to decode/encode strings and Lua code
- attribute read access on Lua objects, e.g. to read Lua table values from Python
- str() on Lua objects
- include .hg repository in source downloads
- added missing files to source distribution
- fix several threading issues
- safely free the GIL when calling into Lua
- propagate Python exceptions through Lua calls
- first public release