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
|
-- This is file `lualibs-extended.lua',
module('lualibs-extended', package.seeall)
local lualibs_basic_module = {
name = "lualibs-extended",
version = 1.01,
date = "2013/04/10",
description = "Basic Lua extensions, meta package.",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL & Elie Roux",
copyright = "PRAGMA ADE / ConTeXt Development Team",
license = "See ConTeXt's mreadme.pdf for the license",
}
--[[doc--
Here we define some functions that fake the elaborate logging/tracking
mechanism Context provides.
--doc]]--
local error, logger, mklog
if luatexbase and luatexbase.provides_module then
--- TODO test how those work out when running tex
local __error,_,_,__logger = luatexbase.provides_module(lualibs_module)
error = __error
logger = __logger
mklog = function ( ) return logger end
else
local texiowrite = texio.write
local texiowrite_nl = texio.write_nl
local stringformat = string.format
mklog = function (t)
local prefix = stringformat("[%s] ", t)
return function (...)
print(...)
texiowrite_nl(prefix)
texiowrite (stringformat(...))
end
end
error = mklog"ERROR"
logger = mklog"INFO"
end
--[[doc--
We temporarily put our own global table in place and restore whatever
we overloaded afterwards.
\CONTEXT\ modules each have a custom logging mechanism that can be
enabled for debugging.
In order to fake the presence of this facility we need to define at
least the function \verb|logs.reporter|.
For now it’s sufficient to make it a reference to \verb|mklog| as
defined above.
--doc]]--
local log_backup
local switch_logger = function ( )
if _G.logs then
log_backup = _G.logs
end
_G.logs = {
reporter = mklog,
newline = function ( ) texiowrite_nl"" end,
}
end
--[[doc--
Restore a backed up logger if appropriate.
--doc]]--
local restore_logger = function ( )
if log_backup then _G.logs = log_backup end
end
local loadmodule = lualibs.loadmodule
loadmodule("lualibs-util-str.lua")--- string formatters (fast)
loadmodule("lualibs-util-tab.lua")--- extended table operations
loadmodule("lualibs-util-sto.lua")--- storage (hash allocation)
----------("lualibs-util-pck.lua")---!packers; necessary?
----------("lualibs-util-seq.lua")---!sequencers (function chaining)
----------("lualibs-util-mrg.lua")---!only relevant in mtx-package
loadmodule("lualibs-util-prs.lua")--- miscellaneous parsers; cool. cool cool cool
----------("lualibs-util-fmt.lua")---!column formatter (rarely used)
loadmodule("lualibs-util-dim.lua")--- conversions between dimensions
loadmodule("lualibs-util-jsn.lua")--- JSON parser
switch_logger()
----------("lualibs-trac-set.lua")---!generalization of trackers
----------("lualibs-trac-log.lua")---!logging
loadmodule("lualibs-trac-inf.lua")--- timing/statistics
loadmodule("lualibs-util-lua.lua")--- operations on lua bytecode
restore_logger()
-- vim:tw=71:sw=2:ts=2:expandtab
-- End of File `lualibs-extended.lua'.
|