summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/luatex/lualibs/lualibs-basic.lua
blob: 25b2cec3ba1d4e81c2ad0e8bddca22795323ffc5 (plain)
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'.