Releases: dibyendumajumdar/ravi
Ravi (a Lua 5.3 dialect) 1.0 Beta-2 Release with LLVM and Eclipse OMR JIT compilation support
Ravi (http://ravilang.org) is a dialect of Lua 5.3 with LLVM and Eclipse OMR based JIT compilers and limited optional static typing. I am pleased to announce that the 1.0 Beta-2 release of Ravi is now available. Additionally, work is ongoing to create a distribution of Ravi that includes a selection of high quality third-party libraries (https://github.com/dibyendumajumdar/Suravi).
This release is aligned with Lua 5.3.5.
The main highlights of this release are:
-
Support for LLVM 8.0.1 has been added. Note that Ravi is compatible with LLVM versions 3.5 and above, except for LLVM 7.0 which has not been tested
-
The LLVM backend can now switch between the hand-coded LLVM IR and IR generated via a C front-end. The support for C IR generator makes it easier to experiment with code generation strategies in the future.
-
The alternative JIT backend based on a customized version of Eclipse OMR (https://github.com/dibyendumajumdar/nj) is also available.
For general information regarding Ravi please visit:
- https://github.com/dibyendumajumdar/ravi
- https://github.com/dibyendumajumdar/Suravi
All feedback welcome!
Thanks and Regards
Dibyendu
Ravi (a Lua 5.3 dialect) 1.0 Beta-1 Release with LLVM and Eclipse OMR JIT compilation support
Ravi (http://ravilang.org) is a dialect of Lua 5.3 with LLVM and Eclipse OMR based JIT compilers and limited optional static typing. I am pleased to announce that the 1.0 Beta-1 release of Ravi is now available. Additionally, work is ongoing to create a distribution of Ravi that includes a selection of high quality third-party libraries (https://github.com/dibyendumajumdar/ravi-distro).
This release is aligned with Lua 5.3.5.
The main highlights of this release are:
- The new JIT backend based on a customized version of Eclipse OMR (https://github.com/dibyendumajumdar/nj) is available.
The main advantages of the new Eclipse OMR JIT backend are:
- It is much smaller in size compared to LLVM
- It was designed to be a JIT rather than an AOT compiler
- Like LLVM it is an optimizing JIT compiler
- It is under active development and battle tested as part of the OpenJ9 project
For further details on how to build Ravi with Eclipse OMR support please visit:
For general information regarding Ravi please visit:
All feedback welcome!
Thanks and Regards
Dibyendu
Ravi (a Lua 5.3 dialect) Alpha Release 0.24 with LLVM and Eclipse OMR JIT compilation support
Ravi (http://ravilang.org) is a dialect of Lua 5.3 with LLVM and Eclipse OMR based JIT compilers and limited optional static typing. I am pleased to announce that the alpha 0.24 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 main highlight of this release is that a new JIT backend based on a customized version of Eclipse OMR has been added. Note that this is in development and this is an early preview release.
The main advantages of the new Eclipse OMR JIT backend are:
- It is much smaller in size compared to LLVM
- It was designed to be a JIT rather than an AOT compiler
- Like LLVM it is an optimizing JIT compiler
- It is under active development and battle tested as part of the OpenJ9 project
For further details on how to build Ravi with Eclipse OMR support please visit:
For general information regarding Ravi please visit:
All feedback welcome!
Thanks and Regards
Dibyendu
Ravi (a Lua 5.3 dialect) Alpha Release 0.23 with LLVM JIT compilation support
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.
Ravi (a Lua 5.3 dialect) Alpha Release 0.22 with LLVM JIT compilation support
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.
Ravi (a Lua 5.3 dialect) Alpha Release 0.21 with LLVM JIT compilation support
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.
Ravi (a Lua 5.3 dialect) Alpha Release 0.20 with LLVM JIT compilation support
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.
Ravi (a Lua 5.3 dialect) Alpha Release 0.19 with LLVM JIT compilation support
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.
Ravi (a Lua 5.3 dialect) Alpha Release 0.18 with LLVM JIT compilation support
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.
Ravi (a Lua 5.3 dialect) Alpha Release 0.17 with LLVM and libgccjit JIT compilation support
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.