Pre-release

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.23 release of Ravi is now available. Additionally, work is ongoing on creating a distribution of Ravi that includes high quality third-party libraries (https://github.com/dibyendumajumdar/ravi-distro).

This release is aligned with Lua 5.3.4.

The principal changes in this release are:

  • LLVM 6.0 support
  • Bug fixes from ongoing work on Ravi Distribution
  • The LuaJIT bit library is included
  • Ravi can be used to run dynasm assembler.

Known Issues

  • The Windows 64-bit build of LLVM continues may crash when running Lua tests ( issue #30 )

Others

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

Pre-release

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.22 release of Ravi is now available.

This release is aligned with Lua 5.3.4.

The principal changes in this release are:

  • Experimental support for additional type annotations
  • Support for computed gotos in the interpreter
  • Some performance related changes imported from latest Lua codebase
  • In addition to the CMake build, there is now a Lua style Makefile supplied as well; this can be used to quickly build an interpreter only (no JIT) build of Ravi

Known Issues

  • The Windows 64-bit build of LLVM continues to crash when running Lua tests ( issue #30 )

Others

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

Pre-release

The principal change in this release is a migration to LLVM ORC JIT apis for LLVM 5.0 and above. MCJIT will still be used for earlier versions of LLVM.

The ORC JIT apis are better at managing memory, and in particular, LLVM will now no longer hold on to a Module's IR after the module is compiled.

Known Issues

  • The Windows 64-bit build of LLVM continues to crash when running Lua tests ( issue #30 )

Others

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

Pre-release

The principal changes in this release are:

  • Bug fixes ( issues #127, #132 )
  • LLVM 4.0 compatibility ( issues #124 )
  • LLVM 5.0 compatibility ( issues #131 )
  • Ravi has been tested against LLVM 4.0 and 5.0. LLVM 3.9, 3.8, 3.7, 3.6 and 3.5 should also work but have not been explicitly tested.
  • The Windows 64-bit build of LLVM appears more stable since 4.0 ( issue #30 )

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.

Pre-release

The principal changes in this release are:

  • Lua 5.3.4 Bug fixes ( issues #119 )
  • Bug fixes ( issues #118 )
  • Ravi has been tested against LLVM 3.9, 3.8 and 3.7. LLVM versions 3.6 and 3.5 should still work but has not been tested.

Build Info

  • On Windows this release was tested against LLVM 3.9.0 in 32-bit mode. The Windows 64-bit builds have known issues as stated below.
  • On Linux the build was tested against LLVM 3.7.0, 3.9.0.
  • 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's 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 in LLVM.

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.

Pre-release

The principal changes in this release are:

  • Lua 5.3.3 Bug fixes ( issues #111 )
  • Bug fixes ( issues #106 #107 #108 )
  • Refactored implementation of table / table sub types to improve performance ( issue #100 )
  • Enable JIT compilation for all byte codes ( issue #105 )
  • Ravi has been tested against LLVM 3.9, 3.8 and 3.7. LLVM versions 3.6 and 3.5 should still work but has not been tested.

Build Info

  • On Windows this release was tested against LLVM 3.9.0 in 32-bit mode. The Windows 64-bit builds have known issues as stated below.
  • On Linux the build was tested against LLVM 3.7.0, 3.9.0.
  • 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.

Pre-release

The principal changes in this release are:

  • Bug fixes (issues #101, #104)
  • LLVM version 3.9.0 support added (issue #102)
  • Some Ravi extension APIs were refactored (issue #103)
  • Option for static build (issue #70) was added; the supplied Ubuntu Linux binaries are statically built.
  • A 32-bit integer/float configuration was contributed (issue #89)
  • 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 has not been tested.

Build Info

  • On Windows this release was tested against LLVM 3.9.0 in 32-bit mode. The Windows 64-bit builds have known issues as stated below.
  • On Linux the build was tested against LLVM 3.7.0, 3.9.0.
  • 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.

Pre-release

The principal changes in this release are:

  • Lua 5.3.3 changes have been merged.
  • An initial 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.8 and 3.7. LLVM versions 3.6 and 3.5 should still work but has not been tested.

Build Info

  • On Windows this release was tested against LLVM 3.8.1 in 32-bit mode. The Windows 64-bit 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.

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.