Skip to content

Ravi Alpha Release 0.5 - Windows and Ubuntu 64-bit

Pre-release
Pre-release
Compare
Choose a tag to compare
@dibyendumajumdar dibyendumajumdar released this 26 Apr 18:05
· 1993 commits to master since this release

This release has following changes:

  • Performance of JITed code has improved due to addition of a missing DataLayout pass in the JIT compilation phase.
  • In auto mode the JIT compiler is now used if the function contains a fornum loop, or is larger than 150 Lua instructions or is executed more than 50 times. The last two parameters can be changed by the ravi.auto() function.
  • A fornum loop that uses an integer index with known positive step (i.e. literal or default) uses a more optimized code.
  • This release has been modified to ensure that JITed code is only executed within the Lua main thread; this change allows coroutines to work albeit in interpreted mode
  • This version is also being built and tested on MAC OSX (Yosemite) 64-bit - although a binary for this OS is not included, so you will need to build from source.

Known issue:

  • For reasons still to be determined, on Windows a call to pcall() can sometimes fail with an exception about invalid or misaligned stack (see issue 30).

This release includes a Ubuntu binary.
Note that on Ubuntu you need to set PATH and LD_LIBRARY_PATH variables for the shared library to be found.

Please note following limitations in this release:

  1. JIT compilation not yet supported for bitwise operations, and for operations involving typed up-values.
  2. The Lua C API has not been fully tested for Ravi extensions so please do not use the C API yet.
  3. Coroutines are executed in interpreted mode (only main thread can execute JITed code).
  4. Debug API not supported for JITed code.
  5. Tail calls handled as normal calls - so will cause stack overflow for recursive calls (max 110 levels).
  6. Note that by default JIT compilation is not enabled - refer see documentation referred to below.
  7. Expect lots of bugs.
  8. Please read the latest documentation (http://the-ravi-programming-language.readthedocs.org/en/latest/) for details of what works and what doesn't , and how to enable JIT compilation