Ravi Alpha Release 0.10 - 64-bit with LLVM and libgccjit support
Pre-release
Pre-release
dibyendumajumdar
released this
25 Oct 23:45
·
1613 commits
to master
since this release
In this release there are following changes:
- A bug in type analysis of boolean operators was fixed
- A bug in metamethod invocation in JIT mode for IDIV operator was fixed
- Support for updating savedpc added in LLVM JIT implementation - this means that error messages now show better stack trace, and the debug api works mostly (but see below).
API changes
- New API ravi.tracehook(boolean) provided; default is false. If this is set to true then in JIT mode at every bytecode instruction the 'savedpc' will be set, and also line hooks enabled. If not set then 'savedpc' is only set at function calls. See issue #15 for details.
- The debug API is now more functional thanks to changes above. debug.setlocal() performs type checks when updating local variables - this is experimental. debug.setupvalue() however doesn't and therefore should not be used on upvalues that are typed.
Build Info
- On Windows this release was tested against the latest LLVM 3.7.0.
- On Linux the build was tested against LLVM 3.7.0 and libgccjit 5.2.
- On Mac OSX I tested against LLVM 3.7.0.
Known Issues
Please refer to the logged issues for known problems. In particular on Windows platforms the 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 for details.
Other than this 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.