Lua Vermelha is an implementation of Lua 5.3 with a Just-In-Time (JIT) compiler built from Eclipse OMR compiler technology.
It is designed to integrate into the PUC-Rio Lua virtual machine with only minor modifications done to it.
(Please note that Lua Vermelha is under active development and may be unstable and definitely is buggy)
Lua Vermelha includes the Eclipse OMR project as a submodule so I recommend cloning this repo recursively:
$ git clone --recursive https://github.com/Leonardo2718/lua-vermelha.git
Currently, the only tested and supported platform is Linux on x86-64. Support for other platforms will come later on. Until then, if you need to build Lua Vermelha on a different platform, you should be able to easily modify the makefiles manually to suit your needs.
IMPORTANT: Before JitBuilder can be built (and by extension Lua Vermelha), it's important to configure OMR for your platform (see the Eclipse OMR project page for details):
$ cd lua-vermelha/omr
$ make -f run_configure.mk SPEC=linux_x86-64 OMRGLUE=./example/glue
The top level Makefile can then be used to build the Lua Vermelha executable
interpreter frontend luav
.
$ cd .. # back to `lua-vermelha/`
$ make -j4 # will recursively build JitBuilder, the JIT, the VM, and luav
The luav
executable can be used the same way as the PUC-Rio Lua
interpreter frontend (usually lua
):
$ luav # starts REPL
$ luav file.lua # executes the Lua script `file.lua`
$ luav luac.out # executes compiled Lua bytecode (output of `luac`)
Lua Vermelha has three components, each with their own licensing:
- The (slightly) modified PUC-Rio Lua VM keeps its original license (MIT) and copy-right holders
- The Lua Vermelha JIT compiler is distributed under two licenses:
- The Eclipse OMR component is provided as a submodule pointing to the main project repository and is under the same licenses as the Lua Vermelha JIT