Roberto's position was "Lua and LuaJIT are different languages, pick
one". a corollary is that optimizing for one is different from
optimizing for the other.
Hisham's position was "you can write very compatible code that will
run nicely on Lua 5.1, 5.2, 5.3, LuaJIT 1.0, 2.0, 2.1. aim for
readability/maintainability, it will be fast enough for almost any
As long as you can avoid nil, then table.insert() and table.remove()
implement a LIFO stack (since both default to the last position). That is:
push = table.insert
pop = table.remove
How much more compilicated is your ADT?