[ANN] Ravi (a Lua 5.3 dialect) with LLVM JIT Compilation technology - Alpha Release 0.17

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[ANN] Ravi (a Lua 5.3 dialect) with LLVM JIT Compilation technology - Alpha Release 0.17

Dibyendu Majumdar
Ravi (http://ravilang.org) is a dialect of Lua 5.3 with LLVM based JIT
compiler and limited optional static typing.

I am pleased to announce that the alpha 0.17 release of Ravi is now
available.

The principal changes in this release are:

LLVM 3.9 support added.

Support for 32-bit integer/float configuration was contributed.

An updated version of a Visual Studio Code debugger extension was
created. The extension is available in the Visual Studio Code
extension marketplace. You can debug standalone Ravi/Lua 5.3 scripts
using this extension. This is still work in progress but the basics
are working.

Ravi has been tested against LLVM 3.9, 3.8 and 3.7. LLVM versions 3.6 and
3.5 should still work but have not been tested.

For full details and previous release history please visit:

https://github.com/dibyendumajumdar/ravi/releases

Regards

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Ravi (a Lua 5.3 dialect) with LLVM JIT Compilation technology - Alpha Release 0.17

Russell Haley
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?

Russ

On Fri, Sep 23, 2016 at 4:58 PM, Dibyendu Majumdar
<[hidden email]> wrote:

> Ravi (http://ravilang.org) is a dialect of Lua 5.3 with LLVM based JIT
> compiler and limited optional static typing.
>
> I am pleased to announce that the alpha 0.17 release of Ravi is now
> available.
>
> The principal changes in this release are:
>
> LLVM 3.9 support added.
>
> Support for 32-bit integer/float configuration was contributed.
>
> An updated version of a Visual Studio Code debugger extension was
> created. The extension is available in the Visual Studio Code
> extension marketplace. You can debug standalone Ravi/Lua 5.3 scripts
> using this extension. This is still work in progress but the basics
> are working.
>
> Ravi has been tested against LLVM 3.9, 3.8 and 3.7. LLVM versions 3.6 and
> 3.5 should still work but have not been tested.
>
> For full details and previous release history please visit:
>
> https://github.com/dibyendumajumdar/ravi/releases
>
> Regards
>

Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Ravi (a Lua 5.3 dialect) with LLVM JIT Compilation technology - Alpha Release 0.17

Dibyendu Majumdar
On 24 September 2016 at 01:54, Russell Haley <[hidden email]> 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.

Regards
Dibyendu