I have definitely considered this myself several times. As you say, since FFI code is not portable to PUC anyway one could imagine a "non-compatibility" mode where more features (or performance) were available. I still think it's essential to have the compatibility mode since that is a big driver of adoption (and also provides a backup plan for when LuaJIT won't deploy on some particular platform). On the other hand, the FFI is sort of already the "non-compatibility mode", well contained but easily accessible. I could imagine additional features evolving there. I know Mike is already planning some 64-bit options for BitOp but I could imagine an (easier-to-design?) FFI.bit that just gives you what C gives you on all native types. But that's still "just C in Lua". If you wanted to explore real new capabilities within Lua perhaps an option to push coroutines into native threads, and add send/receive semantics in the style of Erlang (this is not a deeply thought out idea; if it ends up being stupid please don't take it too seriously!). Still, while it's fun to dream about new capabilities, I always conclude that such ideas are isomorphic to "what if Lua had additional feature X" and a big part of my affection for Lua is that it routinely say "no" to new features. If only they'd add that one last feature <X> that I really want it would be perfect ... ;-) Demetri