Skip to content

Ravi (a Lua 5.3 dialect) Alpha Release 0.15 with LLVM and libgccjit JIT compilation support

Pre-release
Pre-release
Compare
Choose a tag to compare
@dibyendumajumdar dibyendumajumdar released this 20 Mar 22:53
· 1463 commits to master since this release

The principal changes in this release are:

  • The changes in 0.14 to allow all Lua functions in a table to be added to a single LLVM module had introduced a bug - the LLVM module was not being destroyed in some cases leading to leaked memory. Thanks to ASAN this was caught while testing.
  • Recently found Lua 5.3.2 bug fixes (as discussed on Lua mailing list) have been applied.
  • Ravi has been updated to work with LLVM 3.8. In this release LLVM 3.7 and 3.8 were tested; 3.6 and 3.5 should still work but has not been tested.

Build Info

  • On Windows this release was tested against LLVM 3.7.1, and LLVM 3.8 in 64-bit and 32-bit mode. The Windows builds have known issues as stated below.
  • On Linux the build was tested against LLVM 3.7.0 and libgccjit 5.2.
  • On Mac OSX the build was tested against LLVM 3.8.0.

Known Issues

Please refer to the logged issues for known problems. In particular on Windows platforms the 64-bit JIT code does not handle longjmp/setjmp reliably due to limitations in LLVM 64-bit code generation on Windows. For details please refer to issue #30. As a workaround I am supplying 32-bit binaries for the Windows platform until the issue is resolved.

The 32-bit build on Windows fails to correctly perform bitwise operations when statically typed local variables are used (issue #74).

Please also refer to the Ravi documentation for a list of known differences between JIT mode and interpreted mode, and compatibility with Lua 5.3.