The LuaJIT 1.x series represents the current stable branch. Only a single bug has been discovered in the last three years. So, if you need a rock-solid VM, you are encouraged to fetch the latest release of LuaJIT 1.x from the » Download page.
LuaJIT 2.0 is the currently active development branch in beta test. It has » much better performance than LuaJIT 1.x and runs on many more platforms and architectures. It's nearing a stable release, so you should definitely start to evaluate it for new projects right now.
Current Status
LuaJIT ought to run all Lua 5.1-compatible source code just fine. It's considered a serious bug if the VM crashes or produces unexpected results — please report this.
Known incompatibilities and issues in LuaJIT 2.0:
- There are some differences in implementation-defined behavior. These either have a good reason, are arbitrary design choices or are due to quirks in the VM. The latter cases may get fixed if a demonstrable need is shown.
- The Lua debug API is missing a couple of features (return hooks for non-Lua functions) and shows slightly different behavior in LuaJIT (no per-coroutine hooks, no tail call counting).
- Some checks are missing in the JIT-compiled code for obscure situations with open upvalues aliasing one of the SSA slots later on (or vice versa). Bonus points, if you can find a real world test case for this.
- Currently some out-of-memory errors from on-trace code are not handled correctly. The error may fall through an on-trace pcall or it may be passed on to the function set with lua_atpanic on x64. This issue will be fixed in LuaJIT 2.1.
Roadmap
Please refer to the » LuaJIT Roadmap 2012/2013 for details.