You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ravi/src
Dibyendu Majumdar a82d42b847
issue #169 MIR update
4 years ago
..
Makefile issue #195 Some improvements to Makefile build - based on Lua 5.4 build improvements 4 years ago
README.rst issue #186 4 years ago
bit.c issue #133 add LuaJIT's bit library so that we can support dynasm 7 years ago
lapi.c issue #196 backport generational GC from Lua 5.4 4 years ago
lauxlib.c issue #157 cleanup 4 years ago
lbaselib.c issue #196 backport generational GC from Lua 5.4 4 years ago
lbitlib.c issue #156 6 years ago
lcode.c Update copyright notices 4 years ago
lcorolib.c issue #163 Maintain optionality of defer statement 4 years ago
lctype.c issue #156 6 years ago
ldblib.c issue #156 6 years ago
ldebug.c issue #193 Lua 5.4 string library improvements back-ported 4 years ago
ldo.c issue #163 Maintain optionality of defer statement 4 years ago
ldump.c Update copyright notices 4 years ago
lfunc.c issue #163 Fix issue with handling of deferred functions when a Lua thread is closed. 4 years ago
lgc.c issue #196 When an object aged OLD1 is finalized, it is moved from the list 'finobj' to the *beginning* of the list 'allgc'. So, this part of the 4 years ago
linit.c issue #198 WIP add interface to RaviCompiler project 4 years ago
liolib.c issue #156 6 years ago
llex.c issue #195 lexer / utf8 improvements from Lua 5.4 4 years ago
lmathlib.c issue #191 #193 backport random number generator from Lua 5.4 4 years ago
lmem.c issue #156 6 years ago
loadlib.c issue #156 6 years ago
lobject.c issue #195 number and integer conversions 4 years ago
lopcodes.c issue #163 'defer' implementation now controlled via RAVI_DEFER_STATEMENT macro. This allows testing of performance with and without the 'defer' statement 4 years ago
loslib.c issue #156 6 years ago
lparser.c issue #163 Do not generate TAILCALL opcode if a defer closure is in scope; back-ported from Lua 5.4. 4 years ago
lstate.c issue #163 Maintain optionality of defer statement 4 years ago
lstring.c issue #156 6 years ago
lstrlib.c issue #193 Lua 5.4 string library improvements back-ported 4 years ago
ltable.c issue #196 backport generational GC from Lua 5.4 4 years ago
ltablib.c issue #156 6 years ago
ltests.c issue #195 backport luaO_pushvfstring 4 years ago
ltm.c issue #99 Use dedicated structure for Ravi array types 4 years ago
lua.c issue #196 don't make generational GC the default yet - various issues reported on Lua mailing list. 4 years ago
luac.c issue #156 6 years ago
lundump.c Update copyright notices 4 years ago
lutf8lib.c issue #195 lexer / utf8 improvements from Lua 5.4 4 years ago
lvm.c issue #195 Some improvements to Makefile build - based on Lua 5.4 build improvements 4 years ago
lzio.c issue #156 6 years ago
ravi_alloc.c issue #151 adopt Doug Lea's allocator 6 years ago
ravi_complib.c issue #198 initialize the _ENV upvalue 4 years ago
ravi_jit.c issue #157 Add Ravi api functions to return JIT name and options 4 years ago
ravi_jitshared.c issue #163 Fix bug in OP_RETURN in interpreter and MIR JIT backend; we need to reload RA after call to luaF_close() as stack may been reallocated 4 years ago
ravi_llvmarith1.cpp Update copyright notices 4 years ago
ravi_llvmarith2.cpp issue #195 number and integer conversions 4 years ago
ravi_llvmcall.cpp issue #163 'defer' implementation now controlled via RAVI_DEFER_STATEMENT macro. This allows testing of performance with and without the 'defer' statement 4 years ago
ravi_llvmcodegen.cpp issue #195 number and integer conversions 4 years ago
ravi_llvmcomp.cpp issue #163 'defer' implementation now controlled via RAVI_DEFER_STATEMENT macro. This allows testing of performance with and without the 'defer' statement 4 years ago
ravi_llvmforloop.cpp Update copyright notices 4 years ago
ravi_llvmforprep.cpp Update copyright notices 4 years ago
ravi_llvmjit.cpp issue #157 Add Ravi api functions to return JIT name and options 4 years ago
ravi_llvmload.cpp Update copyright notices 4 years ago
ravi_llvmrest.cpp Update copyright notices 4 years ago
ravi_llvmreturn.cpp issue #163 'defer' implementation now controlled via RAVI_DEFER_STATEMENT macro. This allows testing of performance with and without the 'defer' statement 4 years ago
ravi_llvmtable.cpp issue #99 LLVM JIT updates to support RaviArray breakout from Table structure 4 years ago
ravi_llvmtforcall.cpp Update copyright notices 4 years ago
ravi_llvmtypes.cpp issue #195 number and integer conversions 4 years ago
ravi_membuf.c Update copyright notices 4 years ago
ravi_mirjit.c issue #169 MIR update 4 years ago
ravi_nojit.c issue #157 Add Ravi api functions to return JIT name and options 4 years ago
ravi_profile.c issue #109 7 years ago

README.rst

This folder has all the Lua and Ravi source files.


The Lua sources begin with the letter ``l``.
The following Lua sources have been enhanced for Ravi.

* lvm.c - this has the Ravi bytecode implementations
* lopcodes.c - definitions of Ravi opcodes
* ldo.c - changes to enable calling JITed function
* lparser.c - parser changes for optional typing
* lcode.c - code generator changes for optional typing
* lfunc.c - changes to support JIT compilation
* linit.c - the Ravi api functions get loaded here
* ltable.c - enhancements for Ravi array types
* lapi.c - enhancements for Ravi array types

Ravi uses Doug Lea's malloc implementation. The implementation is in:

* ravi_alloc.c - Doug Lea's malloc implementation, adapted for Ravi.

## JIT Implementations

* ravi_jit.c - Ravi JIT API definition

Some backends use C as the intermediate language. The common C code generator is in:

* ravi_jitshared.c - this is the C code generator for a given Ravi / Lua function

The MIR JIT implementation is in:

* ravi_mirjit.c - defines the driver functions. The MIR backend has its own C preprocessor, parser and code generator.

The LLVM JIT implementation is in following sources:

* ravi_llvmtypes.cpp - contains LLVM type definitions for Lua objects
* ravi_llvmcodegen.cpp - LLVM JIT compiler - main driver for compiling Lua bytecodes into LLVM IR
* ravi_llvmload.cpp - implements OP_LOADK and OP_MOVE, and related operations, also OP_LOADBOOL
* ravi_llvmcomp.cpp - implements OP_EQ, OP_LT, OP_LE, OP_TEST and OP_TESTSET.
* ravi_llvmreturn.cpp - implements OP_RETURN
* ravi_llvmforprep.cpp - implements OP_FORPREP
* ravi_llvmforloop.cpp - implements OP_FORLOOP
* ravi_llvmtforcall.cpp - implements OP_TFORCALL and OP_TFORLOOP
* ravi_llvmarith1.cpp - implements various type specialized arithmetic operations - these are Ravi extensions
* ravi_llvmarith2.cpp - implements Lua opcodes such as OP_ADD, OP_SUB, OP_MUL, OP_DIV, OP_POW, OP_IDIV, OP_MOD, OP_UNM
* ravi_llvmcall.cpp - implements OP_CALL, OP_JMP
* ravi_llvmtable.cpp - implements OP_GETTABLE, OP_SETTABLE and various other table operations, OP_SELF, and also upvalue operations
* ravi_llvmrest.cpp - OP_CLOSURE, OP_VARARG, OP_CONCAT
* ravi_llvmjit.cpp - Main classes that manage JIT at runtime