Subject : [ANN] LuaJIT-2.0.0-beta1

: From : Mike Pall <mikelu-0910@...>

: Mike Pall <mikelu-0910@...> Date: Sat, 31 Oct 2009 23:59:59 +0100

It's almost midnight on Halloween here. This is the perfect time to release long-awaited, almost mythical open source software ... ;-) Yes, here it is: the first public release of LuaJIT 2.0! Here is a link to the home page: http://luajit.org/luajit.html And a direct link to the download page: http://luajit.org/download.html What is LuaJIT? --------------- LuaJIT is a Just-In-Time (JIT) Compiler for Lua. It's fully compatible with standard Lua 5.1 and can significantly boost the performance of your Lua programs. LuaJIT is open source software, released under the MIT/X license. LuaJIT builds out-of-the-box on all popular x86 operating systems (Linux, Windows, OSX etc.). It runs fine as a 32 bit application under x64-based systems, too. This is a BETA TEST release -- the current status and the list of known issues are shown here: http://luajit.org/status.html Please report any problems you may find with this release. Thank you! What's new in LuaJIT 2.0 ------------------------ The VM of LuaJIT 2.0 has been rewritten from the ground up and is relentlessly optimized for performance. It combines a high-speed interpreter, written in assembler, with a state-of-the-art JIT compiler. An innovative trace compiler is integrated with advanced, SSA-based optimizations and a highly tuned code generation backend. This allows a substantial reduction of the overhead associated with dynamic language features. It's destined to break into the performance range traditionally reserved for offline, static language compilers. Performance on numerical code is already quite competitive (see below). Support for other areas (e.g. string functions) is still a bit weak. Although the VM supports all Lua language features and standard library functions, the JIT compiler is not complete (yet) and falls back to the interpreter in some cases. All of this works transparently, so unless you use -jv, you'll probably never notice. The interpreter is quite fast, too (near the performance of the LuaJIT 1.x JIT compiler). Preliminary benchmark numbers are shown below -- performance will likely improve during the beta test phase. These numbers are mainly intended to give you an idea about the typical speedups you can expect, depending on the type of application. Your mileage may vary. Ok, so thanks to everyone for their patience! A big thank you goes to the alpha testers. And now, please have fun with it -- Happy Halloween! --Mike Relative speedup over Lua 5.1.4 on standard Lua benchmarks (e.g. 11.9 means it's almost twelve times faster): md5 152.7 | mandelbrot 13.4 | nsieve 4.7 | array3d 101.5 | pidigits 12.4 | partialsums 4.1 | array 73.5 | random 12.2 | chameneos 3.8 | methcall 28.8 | nsievebits 12.0 | recursive 3.5 | nsievebits 28.0 | nestedloop 11.9 | knucleotide 3.4 | matrix 23.0 | lists 9.3 | binarytrees 2.7 | spectralnorm 21.4 | cheapconcr 5.5 | meteor 2.0 | fannkuch 20.9 | cheapconcw 5.4 | revcomp 1.8 | nbody 14.8 | fasta 5.3 | sumfile 1.5 | SciMark scores on a 3 GHz Core2 E8400 (single-thread, not vectorized), higher numbers are better: SciMark composite | small score | FFT SOR MC SPARSE LU ----------------------------+--------------------------------------- GCC 4.3.2 906.1 | 739.1 909.0 190.4 1057.0 1635.1 JVM 1.6 Server 876.3 | 573.8 1185.5 297.7 579.2 1745.4 JVM 1.6 Client 579.6 | 424.8 895.8 122.8 595.5 859.0 ----------------------------+--------------------------------------- LuaJIT 2.0.0-beta1 580.4 | 427.4 1025.0 223.7 303.4 922.5 LuaJIT 1.1.5 96.7 | 72.0 166.1 37.1 91.8 116.5 Lua 5.1.4 16.5 | 11.0 27.4 7.6 16.9 19.5 Get the newest Lua SciMark here: http://luajit.org/download/scimark.lua