1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
--
-- This is file `lualibs-basic.lua',
-- generated with the docstrip utility.
--
-- The original source files were:
--
-- lualibs.dtx (with options: `basic')
-- This is a generated file.
--
-- Copyright (C) 2009 by PRAGMA ADE / ConTeXt Development Team
--
-- See ConTeXt's mreadme.pdf for the license.
--
-- This work consists of the main source file lualibs.dtx
-- and the derived file lualibs.lua.
--
-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-- 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 { }
local info = lualibs.info
local loadmodule = lualibs.loadmodule
local lualibs_basic_module = {
name = "lualibs-basic",
version = 2.00,
date = "2013/04/30",
description = "ConTeXt Lua libraries -- basic collection.",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL & Elie Roux & Philipp Gesang",
copyright = "PRAGMA ADE / ConTeXt Development Team",
license = "See ConTeXt's mreadme.pdf for the license",
}
local loaded = false --- track success of package loading
if lualibs.prefer_merged then
info"Loading merged package for collection “basic”."
loaded = loadmodule('lualibs-basic-merged.lua')
else
info"Ignoring merged packages."
info"Falling back to individual libraries from collection “basic”."
end
if loaded == false then
loadmodule("lualibs-lua.lua")
loadmodule("lualibs-package.lua")
loadmodule("lualibs-lpeg.lua")
loadmodule("lualibs-function.lua")
loadmodule("lualibs-string.lua")
loadmodule("lualibs-table.lua")
loadmodule("lualibs-boolean.lua")
loadmodule("lualibs-number.lua")
loadmodule("lualibs-math.lua")
loadmodule("lualibs-io.lua")
loadmodule("lualibs-os.lua")
loadmodule("lualibs-file.lua")
loadmodule("lualibs-md5.lua")
loadmodule("lualibs-dir.lua")
loadmodule("lualibs-unicode.lua")
loadmodule("lualibs-url.lua")
loadmodule("lualibs-set.lua")
end
lualibs.basic_loaded = true
-- vim:tw=71:sw=2:ts=2:expandtab
-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--
-- End of File `lualibs-basic.lua'.
|