edit: sorry I should have searched, Luajit only supports up to Lua 5.1
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++.
https://www.freelists.org/post/luajit/Port-bitop-to-53,1
The biggest issue certainly is the addition of integer types.
And then after 5.1, basically every minor version (5.2, 5.3, so on) have major changes between them, from what I recall.
I remember some undocumented edge cases in string match patterns breaking between 5.1 and 5.2. Imagine Python changing how regexes worked between two minor releases.
"Defence"? Seems like the correct answer and a fact, Lua doesn't do semver, so when there are major changes between 5.3 and 5.4, it's not illogical or actually breaking semver, as they don't follow it.
Plenty of projects don't follow semver, and that's perfectly fine.
> If you find this online version useful, please consider buying a copy of the current edition. This helps to support the Lua project.