Lupa 0.13.1 released (Lua in Python)
Stefan Behnel
stefan_ml at behnel.de
Mon Aug 30 14:22:57 CEST 2010
Hi all,
Lupa 0.13.1 was released to fix a major distribution bug in 0.13. Updating
is recommended.
http://pypi.python.org/pypi/lupa/0.13.1
What is Lupa?
-------------
Lupa integrates the LuaJIT2 runtime into CPython. It is a partial rewrite
of LunaticPython in Cython with some additional features such as proper
coroutine support.
Why use it?
------------
It complements Python very well. Lua is a language as dynamic as Python,
but LuaJIT compiles it to very fast machine code, sometimes faster than
many other compiled languages. The language runtime is extremely small and
carefully designed for embedding. The complete binary module of Lupa,
including a statically linked LuaJIT2 runtime, is only some 500KB on a 64
bit machine.
However, Lua code is harder to write than Python code as the language lacks
most of the batteries that Python includes. Writing large programs in Lua
is rather futile, but it provides a perfect backup language when raw speed
is more important than simplicity, and edit-compile-run cycles are too
heavy for agile development.
Lupa is a very fast and thin wrapper around LuaJIT. It makes it easy to
write dynamic Lua code that accompanies dynamic Python code by switching
between the two languages at runtime, based on the tradeoff between
simplicity and speed.
Recent Changes
---------------
0.13.1 (2010-08-30)
* fix Cython generated C file using Cython 0.13
0.13 (2010-08-29)
* 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() and as_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()
and python.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
0.12 (2010-08-16)
* fix Lua stack leak during table iteration
* fix lost Lua object reference after iteration
0.11 (2010-08-07)
* 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
More information about the Python-announce-list
mailing list