[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: [ANN] Ravi - a dialect of Lua with optional static typing
- From: Dibyendu Majumdar <mobile@...>
- Date: Thu, 26 Feb 2015 00:25:47 +0000
Hi,
I previously posted that I am working on an experimental derivative of
Lua which I have named Ravi. Ravi will be a dialect of Lua with
optional static typing.
http://lua-users.org/lists/lua-l/2015-01/msg00548.html
As I reported earlier I found that adding specialized bytecodes did
not improve performance significantly, as the interpreter branching is
a big overhead.
So for the past few weeks I have been working on implementing a JIT
compiler using LLVM. So far I have implemented only a few Opcodes:
OP_LOADK, OP_RETURN, OP_JMP, OP_LT, OP_LE, OP_EQ. I am currently
working on OP_FORPREP and OP_FORLOOP.
I do not have a timescale for when I will complete implementing all
opcodes - but my hope is to try to get this done by Q2 2015. As I am
learning LLVM along the way it is a slow journey.
At present the JIT compilation is invoked when a function is called
via OP_CALL. The compilation itself takes time - so this is not the
best way to do it. Ideally I want the JIT compilation to be a user
invoked function.
I posted a few days ago that I would be happy to specify an API to
attach a JIT compiler to Lua. I am still hoping this will be of
interest, as an optional JIT compiler for Lua will be an asset I
think.
As I work on Ravi I am documenting its design and implementation. The
latest docs can always be found at:
http://the-ravi-programming-language.readthedocs.org/en/latest/index.html
I will post an update on how this is progressing in 2 weeks or so.
Regards
Dibyendu