lua_load
[-0, +1, –]
int lua_load (lua_State *L, lua_Reader reader, void *data, const char *chunkname, const char *mode);
Loads a Lua chunk without running it. If there are no errors, lua_load
pushes the compiled chunk as a Lua function on top of the stack. Otherwise, it pushes an error message.
The return values of lua_load
are:
-
LUA_OK
: no errors; -
LUA_ERRSYNTAX
: syntax error during precompilation; -
LUA_ERRMEM
: memory allocation (out-of-memory) error; -
LUA_ERRGCMM
: error while running a__gc
metamethod. (This error has no relation with the chunk being loaded. It is generated by the garbage collector.)
The lua_load
function uses a user-supplied reader
function to read the chunk (see lua_Reader
). The data
argument is an opaque value passed to the reader function.
The chunkname
argument gives a name to the chunk, which is used for error messages and in debug information (see §4.9).
lua_load
automatically detects whether the chunk is text or binary and loads it accordingly (see program luac
). The string mode
works as in function load
, with the addition that a NULL
value is equivalent to the string "bt
".
lua_load
uses the stack internally, so the reader function must always leave the stack unmodified when returning.
If the resulting function has upvalues, its first upvalue is set to the value of the global environment stored at index LUA_RIDX_GLOBALS
in the registry (see §4.5). When loading main chunks, this upvalue will be the _ENV
variable (see §2.2). Other upvalues are initialized with nil.
Please login to continue.