&gt; You can cover literally the first two things with LuaJIT.<p>Not at all. You don&#x27;t have explicit control over generating machine code in LuaJIT. OTOH all Terra functions - whether dynamically generated or pre-written - <i>will</i> get compiled to machine code via LLVM. So it&#x27;s explicit, i.e. more work, but more predictable. Arguably Terra code generation will cover more scenarios - consider some code paths may not be JITable at all by LuaJIT (due to NYI) but if you can generate a Terra function, you&#x27;re guaranteed machine code.<p>&gt; If you&#x27;re using Lua to not use Lua, you never wanted to use Lua to begin with!<p>You&#x27;re using Lua as a meta-programming language for Terra. If you know Lua, it could be a lot more convenient than using custom or archaic meta-programming languages.