summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/luatex/lualibs/lualibs.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/luatex/lualibs/lualibs.lua')
-rw-r--r--Master/texmf-dist/tex/luatex/lualibs/lualibs.lua73
1 files changed, 10 insertions, 63 deletions
diff --git a/Master/texmf-dist/tex/luatex/lualibs/lualibs.lua b/Master/texmf-dist/tex/luatex/lualibs/lualibs.lua
index c6f4d8a3963..ae498b20de5 100644
--- a/Master/texmf-dist/tex/luatex/lualibs/lualibs.lua
+++ b/Master/texmf-dist/tex/luatex/lualibs/lualibs.lua
@@ -16,59 +16,6 @@
--
-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--- By default, \identifier{lualibs} will not load the libraries individually.
--- Instead, it includes two \emphasis{merged packages} that have been compiled
--- from the original files.
--- This is achieved by means of \identifier{mtx-package}, a script for bundling
--- \LUA code shipped with \CONTEXT.
--- This concatenates the code of several \LUA files into a single file that is
--- both easier to distribute and loading (marginally) faster.
--- \identifier{mtx-package} ensures that the code from each file gets its
--- own closure and strips newlines and comments, resulting in a smaller payload.
--- Another package that relies on it heavily is the font loader as contained in
--- \identifier{luaotfload} and \identifier{luatex-fonts}.
---
--- If \CONTEXT is installed on the system, the merge files can be created
--- by running:
---
--- \begin{quote}\begin{verbatim}
--- mtxrun --script package --merge lualibs-basic.lua
--- mtxrun --script package --merge lualibs-extended.lua
--- \end{verbatim}\end{quote}
---
--- \noindent
--- Of course there is a make target for that:
---
--- \begin{quote}\begin{verbatim}
--- make merge
--- \end{verbatim}\end{quote}
--- \noindent
--- will take care of assembling the packages from the files distributed with
--- \identifier{lualibs}.
---
--- For this to work, the syntax of the \LUA file needs to be well-formed:
--- files that should be merged must be included via a function
--- \verb|loadmodule()|.
--- It doesn’t matter if the function actually does something; a dummy will
--- suffice.
--- Also, the argument to \verb|loadmodule()| must be wrapped in parentheses.
--- This rule is quite convenient, actually, since it allows excluding files
--- from the merge while still using \verb|loadmodule()| consistently.
---
--- \begin{quote}\begin{verbatim}
--- ...
--- loadmodule("my-lua-file.lua") -- <= will be merged
--- loadmodule('my-2nd-file.lua') -- <= will be merged
--- loadmodule "my-3rd-file.lua" -- <= will be ignored
--- ...
--- \end{verbatim}\end{quote}
---
--- Note that there is one exception to the packaging:
--- \fileent{lualibs-util-jsn.lua} cannot be successfully packaged because
--- it follows a different coding convention, returning a \LUA table on exit.
--- Therefore, the file is loaded separately as part of the \identifier{extended}
--- set like any other \LUA module.
---
-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
lualibs = lualibs or { }
@@ -87,13 +34,9 @@ lualibs.module_info = {
config = config or { }
config.lualibs = config.lualibs or { }
-if config.lualibs.prefer_merged == nil then
- lualibs.prefer_merged = true
-end
-if config.lualibs.load_extended == nil then
- lualibs.load_extended = true
-end
-config.lualibs.verbose = config.lualibs.verbose == false
+lualibs.prefer_merged = config.lualibs.prefer_merged or true
+lualibs.load_extended = config.lualibs.load_extended or true
+config.lualibs.verbose = config.lualibs.verbose or false
local dofile = dofile
@@ -141,13 +84,17 @@ end
lualibs.loadmodule = loadmodule
-if lualibs.basic_loaded ~= true then
+if lualibs.basic_loaded ~= true
+or config.lualibs.force_reload == true
+then
loadmodule"lualibs-basic.lua"
loadmodule"lualibs-compat.lua" --- restore stuff gone since v1.*
end
-if lualibs.load_extended == true
-and lualibs.extended_loaded ~= true then
+if lualibs.load_extended == true
+and lualibs.extended_loaded ~= true
+or config.lualibs.force_reload == true
+then
loadmodule"lualibs-extended.lua"
end