An update on Ravi JIT compilation

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

An update on Ravi JIT compilation

Dibyendu Majumdar
Hi,

I have implemented JIT compilation of additional Lua opcodes. The
latest status can be found at:

https://github.com/dibyendumajumdar/ravi/blob/master/readthedocs/ravi-jit-status.rst

I think that I should be able to complete this phase by April.

Two areas that will need further work are:

+ coroutines - not supported in JIT code
+ tail calls - currently implemented as ordinary calls

Additionally I need to ensure that the C API works correctly with the
extended opcodes supported by Ravi.

My current thinking is that the JIT compilation will be an optional
step. It can be invoked by calling:

ravi.compile(f)
  where f is a Lua function

For debugging and testing I have an auto mode that tries to compile
every function encountered - this suffers from performance issues as
compilation itself takes time.

I intend to allow following modes in Ravi:

+ Lua - in this mode only Lua 5.3 bytecodes will be supported
+ Ravi - in this mode extended opcodes will be supported

The JIT compiler will be available in both modes.

I am hoping to start making binary releases starting in May/June.

Thanks and Regards
Dibyendu