Comment by davikr
Yes. The differences between 5.0 and 5.1 are small and I do not recommend using newer versions, regardless.
Yes. The differences between 5.0 and 5.1 are small and I do not recommend using newer versions, regardless.
Mike Pall (LuaJIT author/maintainer) is not happy with some of the design decisions and (breaking) changes:
https://www.freelists.org/post/luajit/Port-bitop-to-53,1
The biggest issue certainly is the addition of integer types.
There is design tension between the language designer and the VM implementation. AFAIK some features post 5.1 make performant VM implementations difficult. Lua is originally a configuration language where performance didn't matter all that much. Because Luajit is so fast much more of the application code can be done in the scripting environment so now the performance matters much more than it did.
So the spectrum is from newer language and slower to older language and faster. If performance is an issue the cost of the newer language features could be that more of the application code has to be written in C++ instead of Lua - in that context the Lua language shouldn't be considered independent of the host language. Performance matters to me so increase in C++ code would not be worth the newer language features. Using Rust instead of C++ as the host language might change the landscape again since Rust is so much more ergonomic than C++.
Out of curiosity: is LuaJIT supporting only 5.1 because of technical difficulties imposed by newer versions, or is it simply that the design of newer Lua versions did not appeal to the LuaJIT maintainers?