New interface to function 'luaL_openselectedlibs'
Instead of preloading all non-loaded libraries, there is another mask to select which libraries to preload.
This commit is contained in:
@@ -664,7 +664,6 @@ Values equal to or less than 100 mean the collector will not wait to
|
||||
start a new cycle.
|
||||
A value of 200 means that the collector waits for
|
||||
the total number of objects to double before starting a new cycle.
|
||||
The default value is 200.
|
||||
|
||||
The garbage-collector step size controls the
|
||||
size of each incremental step,
|
||||
@@ -672,7 +671,6 @@ specifically how many objects the interpreter creates
|
||||
before performing a step:
|
||||
A value of @M{n} means the interpreter will create
|
||||
approximately @M{n} objects between steps.
|
||||
The default value is 250.
|
||||
|
||||
The garbage-collector step multiplier
|
||||
controls the size of each GC step.
|
||||
@@ -681,7 +679,6 @@ in each step, @M{n%} objects for each created object.
|
||||
Larger values make the collector more aggressive.
|
||||
Beware that values too small can
|
||||
make the collector too slow to ever finish a cycle.
|
||||
The default value is 200.
|
||||
As a special case, a zero value means unlimited work,
|
||||
effectively producing a non-incremental, stop-the-world collector.
|
||||
|
||||
@@ -711,7 +708,6 @@ after the last major collection.
|
||||
For instance, for a multiplier of 20,
|
||||
the collector will do a minor collection when the number of objects
|
||||
gets 20% larger than the total after the last major collection.
|
||||
The default value is 25.
|
||||
|
||||
The minor-major multiplier controls the shift to major collections.
|
||||
For a multiplier @M{x},
|
||||
@@ -721,7 +717,6 @@ than the total after the previous major collection.
|
||||
For instance, for a multiplier of 100,
|
||||
the collector will do a major collection when the number of old objects
|
||||
gets larger than twice the total after the previous major collection.
|
||||
The default value is 100.
|
||||
|
||||
The major-minor multiplier controls the shift back to minor collections.
|
||||
For a multiplier @M{x},
|
||||
@@ -731,7 +726,6 @@ of the objects allocated during the last cycle.
|
||||
In particular, for a multiplier of 0,
|
||||
the collector will immediately shift back to minor collections
|
||||
after doing one cycle of major collections.
|
||||
The default value is 50.
|
||||
|
||||
}
|
||||
|
||||
@@ -5885,13 +5879,6 @@ or @id{NULL} if there is a @x{memory allocation error}.
|
||||
|
||||
}
|
||||
|
||||
@APIEntry{void luaL_openlibs (lua_State *L);|
|
||||
@apii{0,0,e}
|
||||
|
||||
Opens all standard Lua libraries into the given state.
|
||||
|
||||
}
|
||||
|
||||
@APIEntry{
|
||||
T luaL_opt (L, func, arg, dflt);|
|
||||
@apii{0,0,-}
|
||||
@@ -6073,7 +6060,7 @@ and sets the call result to @T{package.loaded[modname]},
|
||||
as if that function has been called through @Lid{require}.
|
||||
|
||||
If @id{glb} is true,
|
||||
also stores the module into the global @id{modname}.
|
||||
also stores the module into the global variable @id{modname}.
|
||||
|
||||
Leaves a copy of the module on the stack.
|
||||
|
||||
@@ -6290,23 +6277,61 @@ Except for the basic and the package libraries,
|
||||
each library provides all its functions as fields of a global table
|
||||
or as methods of its objects.
|
||||
|
||||
To have access to these libraries,
|
||||
the @N{C host} program should call the @Lid{luaL_openlibs} function,
|
||||
which opens all standard libraries.
|
||||
}
|
||||
|
||||
|
||||
@sect2{lualib-h| @title{Loading the Libraries in C code}
|
||||
|
||||
A @N{C host} program must explicitly load
|
||||
the standard libraries into a state,
|
||||
if it wants its scripts to use them.
|
||||
For that,
|
||||
the host program can call the function @Lid{luaL_openlibs}.
|
||||
Alternatively,
|
||||
the host program can open them individually by using
|
||||
@Lid{luaL_requiref} to call
|
||||
@defid{luaopen_base} (for the basic library),
|
||||
@defid{luaopen_package} (for the package library),
|
||||
@defid{luaopen_coroutine} (for the coroutine library),
|
||||
@defid{luaopen_string} (for the string library),
|
||||
@defid{luaopen_utf8} (for the UTF-8 library),
|
||||
@defid{luaopen_table} (for the table library),
|
||||
@defid{luaopen_math} (for the mathematical library),
|
||||
@defid{luaopen_io} (for the I/O library),
|
||||
@defid{luaopen_os} (for the operating system library),
|
||||
and @defid{luaopen_debug} (for the debug library).
|
||||
These functions are declared in @defid{lualib.h}.
|
||||
the host can select which libraries to open,
|
||||
by using @Lid{luaL_openselectedlibs}.
|
||||
Both functions are defined in the header file @id{lualib.h}.
|
||||
@index{lualib.h}
|
||||
|
||||
The stand-alone interpreter @id{lua} @see{lua-sa}
|
||||
already opens all standard libraries.
|
||||
|
||||
@APIEntry{void luaL_openlibs (lua_State *L);|
|
||||
@apii{0,0,e}
|
||||
|
||||
Opens all standard Lua libraries into the given state.
|
||||
|
||||
}
|
||||
|
||||
@APIEntry{void luaL_openselectedlibs (lua_State *L, int load, int preload);|
|
||||
@apii{0,0,e}
|
||||
|
||||
Opens (loads) and preloads selected libraries into the state @id{L}.
|
||||
(To @emph{preload} means to add
|
||||
the library loader into the table @Lid{package.preload},
|
||||
so that the library can be required later by the program.
|
||||
Keep in mind that @Lid{require} itself is provided
|
||||
by the @emph{package} library.
|
||||
If a program does not load that library,
|
||||
it will be unable to require anything.)
|
||||
|
||||
The integer @id{load} selects which libraries to load;
|
||||
the integer @id{preload} selects which to preload, among those not loaded.
|
||||
Both are masks formed by a bitwise OR of the following constants:
|
||||
@description{
|
||||
@item{@defid{LUA_GLIBK} | the basic library.}
|
||||
@item{@defid{LUA_LOADLIBK} | the package library.}
|
||||
@item{@defid{LUA_COLIBK} | the coroutine library.}
|
||||
@item{@defid{LUA_STRLIBK} | the string library.}
|
||||
@item{@defid{LUA_UTF8LIBK} | the UTF-8 library.}
|
||||
@item{@defid{LUA_TABLIBK} | the table library.}
|
||||
@item{@defid{LUA_MATHLIBK} | the mathematical library.}
|
||||
@item{@defid{LUA_IOLIBK} | the I/O library.}
|
||||
@item{@defid{LUA_OSLIBK} | the operating system library.}
|
||||
@item{@defid{LUA_DBLIBK} | the debug library.}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user