From 6523585c66c04cea54df50013df8886b589847d8 Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Mon, 23 Jan 2012 23:36:30 +1000 Subject: Add luaproc and LuaJIT libraries. Two versions of LuaJIT, the stable release, and the dev version. Try the dev version first, until ih fails badly. --- libraries/LuaJIT-1.1.7/jitdoc/luajit_api.html | 372 ++++++++++++++++++++++++++ 1 file changed, 372 insertions(+) create mode 100644 libraries/LuaJIT-1.1.7/jitdoc/luajit_api.html (limited to 'libraries/LuaJIT-1.1.7/jitdoc/luajit_api.html') diff --git a/libraries/LuaJIT-1.1.7/jitdoc/luajit_api.html b/libraries/LuaJIT-1.1.7/jitdoc/luajit_api.html new file mode 100644 index 0000000..58ac809 --- /dev/null +++ b/libraries/LuaJIT-1.1.7/jitdoc/luajit_api.html @@ -0,0 +1,372 @@ + + + +LuaJIT API Extensions + + + + + + + + + +
+Lua +
+ + +
+

+LuaJIT provides several new API functions organized into two +libraries. +

+

+LuaJIT includes Coco — so have a look at the +Coco API Extensions, too. +

+ +

Standard Library Functions

+

+All standard library functions have the same behaviour as +in the Lua distribution LuaJIT is based on. +

+

+The Lua loader used by the standard require() library +function has been modified to turn off compilation of the main +chunk of a module. The main chunk is only run once when the module +is loaded for the first time. There is no point in compiling it. +

+

+You might want to adapt this behaviour if you use your own utility +functions (and not require()) to load modules. +

+

+Note that the subfunctions defined in a loaded module are +of course compiled. See below if you want to override this. +

+ +

The jit.* Library

+

+This library holds several functions to control the behaviour +of the JIT engine. +

+ +

jit.on()
+jit.off()

+

+Turns the JIT engine on (default) or off. +

+

+These functions are typically used with the command line options +-j on or -j off. +

+ +

jit.on(func|true [,true|false])
+jit.off(func|true [,true|false])

+

+Enable (with jit.on, default) or disable (with jit.off) +JIT compilation for a Lua function. The current function (the Lua function +calling this library function) can be specified with true. +

+

+If the second argument is true, JIT compilation is also +enabled/disabled recursively for all subfunctions of a function. +With false only the subfunctions are affected. +

+

+Both library functions only set a flag which is checked when +the function is executed for the first/next time. They do not +trigger immediate compilation. +

+

+Typical usage is jit.off(true, true) in the main chunk +of a module to turn off JIT compilation for the whole module. +Note that require() already turns off compilation for +the main chunk itself. +

+ +

status = jit.compile(func [,args...])

+

+Compiles a Lua function and returns the compilation status. +Successful compilation is indicated with a nil status. +Failure is indicated with a numeric status (see jit.util.status). +

+

+The optimizer pass of the compiler tries to derive hints from the +passed arguments. Not passing any arguments or passing untypical +arguments (esp. the wrong types) reduces the efficiency of the +optimizer. The compiled function will still run, but probably not +with maximum speed. +

+

+This library function is typically used for Ahead-Of-Time (AOT) +compilation of time-critical functions or for testing/debugging. +

+ +

status = jit.compilesub(func|true [,true])

+

+Recursively compile all subfunctions of a Lua function. +The current function (the Lua function calling this library function) +can be specified with true. Note that the function +itself is not compiled (use jit.compile()). +

+

+If the second argument is true, compilation will stop +when the first error is encountered. Otherwise compilation will +continue with the next subfunction. +

+

+The returned status is nil, if all subfunctions have been +compiled successfully. A numeric status (see jit.util.status) +indicates that at least one compilation failed and gives the status +of the last failure (this is only helpful when stop on error +is true). +

+ +

jit.debug([level])

+

+Set the debug level for JIT compilation. If no level is given, +the maximum debug level is set. +

+ +

+Note that some compiler optimizations are turned off when +debugging is enabled. +

+

+This function is typically used with the command line options +-j debug or -j debug=level. +

+ +

jit.attach(handler [, priority])

+

+Attach a handler to the compiler pipeline with the given priority. +The handler is detached if no priority is given. +

+

+The inner workings of the compiler pipeline and the API for handlers +are still in flux. Please see the source code for more details. +

+ +

jit.version

+

+Contains the LuaJIT version string. +

+ +

jit.version_num

+

+Contains the version number of the LuaJIT core. Version xx.yy.zz +is represented by the decimal number xxyyzz. +

+ +

jit.arch

+

+Contains the target architecture name (CPU and optional ABI). +

+ + +

The jit.util.* Library

+

+This library holds many utility functions used by the provided +extension modules for LuaJIT (e.g. the optimizer). The API may +change in future versions. +

+ +

stats = jit.util.stats(func)

+

+Retrieves information about a function. Returns nil +for C functions. Returns a table with the following fields for +Lua functions: +

+ +

+mcodesize and mcodeaddr are not set if the +function has not been compiled (yet). +

+ +

op, a, b, c, test = jit.util.bytecode(func, pc)

+

+Returns the fields of the bytecode instruction at the given pc +for a Lua function. The first instruction is at pc = 1. +Nothing is returned if pc is out of range. +

+

+The opcode name is returned as an uppercase string in op. +The opcode arguments are returned as a, b and +optionally c. Arguments that indicate an index into the +array of constants are translated to negative numbers (the first +constant is referred to with -1). Branch targets are signed numbers +relative to the next instruction. +

+

+test is true if the instruction is a test (i.e. followed +by a JMP). +

+ +

const, ok = jit.util.const(func, idx)

+

+Returns a constant from the array of constants for a Lua function. +ok is true if idx is in range. Otherwise nothing +is returned. +

+

+Constants are numbered starting with 1. A negative idx +is mapped to a positive index. +

+ +

upvalue, ok = jit.util.upvalue(func, idx)

+

+Returns an upvalue from the array of upvalues for a Lua function. +ok is true if idx is in range. Otherwise nothing +is returned. Upvalues are numbered starting with 0. +

+ +

nup = jit.util.closurenup(func, idx)

+

+Returns the number of upvalues for the subfunction prototype with +the given index idx for a Lua function. Nothing is returned +if idx is out of range. Subfunctions are numbered starting +with 0. +

+ +

addr, mcode, mfmiter = jit.util.mcode(func, block])

+

+Returns the numeric start address, the compiled machine code +(converted to a string) and an iterator for the machine code fragment map +for the specified machine code block associated with a Lua function. +

+

+Returns nil and a numeric status code (see jit.util.status) +if the function has not been compiled yet or compilation has failed +or compilation is disabled. Returns nothing if the selected +machine code block does not exist. +

+

+The machine code fragment map is used for debugging and error handling. +The format may change between versions and is an internal implementation +detail of LuaJIT. +

+ +

addr [, mcode] = jit.util.jsubmcode([idx])

+

+If idx is omitted or nil: +Returns the numeric start address and the compiled machine code +(converted to a string) for internal subroutines used by the +compiled machine code. +

+

+If idx is given: +Returns the numeric start address of the machine code for a specific +internal subroutine (0 based). Nothing is returned if idx is +out of range. +

+ +

jit.util.status

+

+This is a table that bidirectionally maps status numbers and +status names (strings): +

+
+ + + + + + + + + + +
Status NameDescription
OKOk, code has been compiled.
NONENothing analyzed or compiled, yet (default).
OFFCompilation disabled for this function.
ENGINE_OFFJIT engine is turned off.
DELAYEDCompilation delayed (recursive invocation).
TOOLARGEBytecode or machine code is too large.
COMPILER_ERRORError from compiler frontend.
DASM_ERRORError from DynASM engine.
+
+ +

jit.util.hints
+jit.util.fhints

+

+These two tables map compiler hint names to internal hint numbers. +

+

+The hint system is an internal implementation detail of LuaJIT. +Please see the source code for more info. +

+
+
+ + + -- cgit v1.1