Playing around with Lua [1] is fun, but I've been hearing some good things about LuaJIT [2], a “just in time” compiler for Lua for the x86 platform (written by a single guy, no less!). Even more amazing, it's literally a drop in replacement for Lua (both the command line interpreter and library).
Okay, I'm willing to give this a try. I download [3], compile and install it. I then decide to test it using jumble program I wrote in Lua [4]. All I need to do is change one line:
>
```
#!/usr/local/bin/lua
```
to read:
>
```
#!/usr/local/bin/luajit
```
and rerun the program.
Table: Lua version of Jumble program version time in seconds ------------------------------ pure Lua 7.74 pure LuaJIT 3.57 Lua + C 2.06 LuaJIT + C 1.70
LuaJIT easily trounces the Lua interpreter without any code changes (other than specifying a different “interpreter”). The versions with C use a C function to sort the letters in the word and while LuaJIT was faster than the Lua + C version, the very fact that I didn't have to modify any code is fantastic! LuaJIT used the very same C code as the Lua version—no changes or recompilations required!
Very neat!
I just relinked my Lua daemon [5] against LuaJIT, just to test it out, and yes, it worked without any changes. I could even reload the scripts on the fly. And incredibly, it's only about 50% bigger than Lua itself.
LuaJIT is one sweet piece of technology.