I feel bad about doing this, but I am introducing another Lua object into the mix, due to stability problems with the existing extensions. My intention is to benefit other community members whose projects are on hold for those issues. The basic interface is similar to Jamie's Lua+ object, both because it's a good design, and to ease converting my own applications. It's by no means a direct clone though and it has different features and some different behaviors than the existing objects.
Some of the differences are:
- Embeds LuaJIT instead of normal Lua. The JIT engine is off by default but can be enabled via an action. I have a tested non-JIT build on reserve though if this turns out to not be so hot.
- Local storage, similar to alterable values and strings but without capacity or index limits, and accessible from MMF and Lua code.
- No stack operations. I believe my stack handling differs considerably from Lua+, based on having needed to clear it occasionally. There is no need (or ability) to clear it in XLua.
- Embeds the bitop library for bitwise operations.
- Aggressive error catching
XLua also has an optional MMF interface (certain individuals would kill me if I excluded it). The functions are in a separate namespace, like the standard packages. The feature set differs somewhat from Lua+, but as far as any of the setter routines go, I have no idea how to correctly or safely manipulate the internal state, so "here be dragons". The interface is disabled by default.
If you are interested in using this extension, please see the included documentation.