lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

On 24 September 2016 at 01:54, Russell Haley <> wrote:
> Wow. Awesome performance specs. You mention a size penalty due to
> llvm. Would that be moot on a platform such as FreeBSD that uses
> clang?

Hi Russell,

Performance wise LuaJIT remains the undisputed champion for most
scenarios. Due to lack of safety in exposing something like FFI -
Ravi's performance when it comes to calling native functions can never
match LuaJIT's. Also the Lua call sequence cannot be optimised until I
can get in-lining done - but for that I need to implement a new parser
and code generator.

The micro-benchmarks do not tell the full story unfortunately as they
are carefully crafted and involve mostly numeric computing. So they
are good in that limited context.

LLVM is not only very big but also very slow as a JIT compiler (this
is probably the bigger issue) which is why most people do not use LLVM
as a JIT compiler (Julia is an exception). I have not found a good
alternative however. I therefore allow the user to decide what/when to
JIT rather than automatically compiling code.

On the plus side, using LLVM has enabled the code to be relatively
simple, and therefore easily maintained. One also gets the benefit of
all the intellectual investment in LLVM.

Ravi was created for a specific need - to serve as a scripting
language in a financial application. In particular on the server side
the JIT compilation speed is not so much of an issue as the code can
be compiled at start-up.