Wednesday, February 03, 2010
Perhaps an 80M script isn't that excessive …
Around three months ago, I found a bug in Lua (and yes, it's silly to run an 80M script, but then, I tend to do silly things with programs). I reported the error to the Lua mailing list, and a few days later it was posted as a known bug with a one line patch to fix it.
And yes, I just got around to retesting Lua (with a version that has every patch applied, including the patch for the bug I found) with my 80M script:
[spc]lucy:/tmp/lua>time lua -i show.lua Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio > dofile("default.lua") > os.exit() real 0m10.964s user 0m5.880s sys 0m0.376s [spc]lucy:/tmp/lua>
Much better.
Lua just in time
Playing around with Lua is fun, but I've been hearing some good things about LuaJIT, 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, compile and install it. I then decide to test it using jumble program I wrote in Lua. All I need to do is change one line:
#!/usr/local/bin/lua
to read:
#!/usr/local/bin/luajit
and rerun the 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 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.
I can't remember the last time I used a printer …
I hate printers.
All I wanted to do was print out a 13 page file using both sides of the paper. It was easy enough to select the odd pages, then the even pages in the printer software. The hard part? Knowing which way to orientate the papers for printing on the second side.
It took me four attempts to get it correct.
Sigh.
So much for saving paper …