* * * * *

                               Lua just in time

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.

[1] http://www.lua.org/
[2] http://luajit.org/
[3] http://luajit.org/download.html
[4] gopher://gopher.conman.org/0Phlog:2009/10/14.3
[5] gopher://gopher.conman.org/0Phlog:2009/10/21.1

Email author at [email protected]