Ravi Alpha Release 0.5 - Windows and Ubuntu 64-bit
Pre-release
Pre-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:
- JIT compilation not yet supported for bitwise operations, and for operations involving typed up-values.
- The Lua C API has not been fully tested for Ravi extensions so please do not use the C API yet.
- Coroutines are executed in interpreted mode (only main thread can execute JITed code).
- Debug API not supported for JITed code.
- Tail calls handled as normal calls - so will cause stack overflow for recursive calls (max 110 levels).
- Note that by default JIT compilation is not enabled - refer see documentation referred to below.
- Expect lots of bugs.
- 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