summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lualibs-basic.lua55
-rw-r--r--lualibs-extended.lua178
-rw-r--r--lualibs.dtx5
3 files changed, 5 insertions, 233 deletions
diff --git a/lualibs-basic.lua b/lualibs-basic.lua
deleted file mode 100644
index 6c14e9f..0000000
--- a/lualibs-basic.lua
+++ /dev/null
@@ -1,55 +0,0 @@
-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
-
---[[doc--
-
- \verb|mtx-package| expects the files to be included by
- \verb|loadmodule|.
- If run on this file, it will create \verb|lualibs-basic-merged.lua|
- from all the files mentioned in the next block.
-
---doc]]--
-
-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
diff --git a/lualibs-extended.lua b/lualibs-extended.lua
deleted file mode 100644
index db790bd..0000000
--- a/lualibs-extended.lua
+++ /dev/null
@@ -1,178 +0,0 @@
-lualibs = lualibs or { }
-
---[[doc--
-
- Loading the \emph{extended} set requires a tad more effort, but
- it’s well invested.
-
- Since we only want the functionality, we have to simulate parts
- of a running \CONTEXT environment, above all logging, that some
- of the more involved libraries cannot be loaded without.
- Also, one utility file cannot be packaged because it returns a
- table which would preclude loading of later code.
- Thus, we remove it from the natural loading chain (it is not
- critical) and append it at the end.
-
---doc]]--
-
-local lualibs_extended_module = {
- name = "lualibs-extended",
- version = 2.00,
- date = "2013/04/30",
- description = "ConTeXt Lua libraries -- extended 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 stringformat = string.format
-local loadmodule = lualibs.loadmodule
-local texiowrite = texio.write
-local texiowrite_nl = texio.write_nl
-
---[[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_extended_module)
- error = __error
- logger = __logger
- mklog = function ( ) return logger end
-else
- local stringformat = string.format
- mklog = function (t)
- local prefix = stringformat("[%s] ", t)
- return function (...)
- texiowrite_nl(prefix)
- texiowrite (stringformat(...))
- end
- end
- error = mklog"ERROR"
- logger = mklog"INFO"
-end
-
-local info = lualibs.info
-
---[[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 dummy_function = function ( ) end
-local newline = function ( ) texiowrite_nl"" end
-
-local fake_logs = function (name)
- return {
- name = name,
- enable = dummy_function,
- disable = dummy_function,
- reporter = mklog,
- newline = newline
- }
-end
-
-local fake_trackers = function (name)
- return {
- name = name,
- enable = dummy_function,
- disable = dummy_function,
- register = mklog,
- newline = newline,
- }
-end
-
---[[doc--
-Among the libraries loaded is \verb|util-env.lua|, which adds
-\CONTEXT’s own, superior command line argument handler.
-Packages that rely on their own handling of arguments might not be
-aware of this, or the library might have been loaded by another package
-altogether.
-For these cases we provide a copy of the original \verb|arg| list and
-restore it after we are done loading.
---doc]]--
-
-local backup_store = { }
-
-local fake_context = function ( )
- if logs then backup_store.logs = logs end
- if trackers then backup_store.trackers = trackers end
- logs = fake_logs"logs"
- trackers = fake_trackers"trackers"
-
- backup_store.argv = table.fastcopy(arg)
-end
-
-
---[[doc--
-Restore a backed up logger if appropriate.
---doc]]--
-local unfake_context = function ( )
- if backup_store then
- local bl, bt = backup_store.logs, backup_store.trackers
- local argv = backup_store.argv
- if bl then logs = bl end
- if bt then trackers = bt end
- if argv then arg = argv end
- end
-end
-
-fake_context()
-
-local loaded = false
-if lualibs.prefer_merged then
- info"Loading merged package for collection “extended”."
- loaded = loadmodule('lualibs-extended-merged.lua')
-else
- info"Ignoring merged packages."
- info"Falling back to individual libraries from collection “extended”."
-end
-
-if loaded == false then
- 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
- ----------("lualibs-util-jsn.lua")--- JSON parser
-
- ----------("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
- loadmodule("lualibs-util-deb.lua")--- extra debugging
- loadmodule("lualibs-util-tpl.lua")--- templating
- loadmodule("lualibs-util-sta.lua")--- stacker (for writing pdf)
- -------------------------------------!data-* -- Context specific
- ----------("lualibs-util-lib.lua")---!swiglib; there is a luatex-swiglib
- loadmodule("lualibs-util-env.lua")--- environment arguments
- ----------("lualibs-mult-ini.lua")---
- ----------("lualibs-core-con.lua")---
-end
-
-loadmodule"lualibs-util-jsn.lua"--- cannot be merged because of return statement
-
-unfake_context() --- TODO check if this works at runtime
-
-lualibs.extended_loaded = true
--- vim:tw=71:sw=2:ts=2:expandtab
diff --git a/lualibs.dtx b/lualibs.dtx
index 7393605..4e0d721 100644
--- a/lualibs.dtx
+++ b/lualibs.dtx
@@ -535,6 +535,11 @@ and lualibs.extended_loaded ~= true then
loadmodule"lualibs-extended.lua"
end
+--- This restores the default of loading everything should a package
+--- have requested otherwise. Will be gone once there is a canonical
+--- interface for parameterized loading of libraries.
+lualibs.load_extended = true
+
-- vim:tw=71:sw=2:ts=2:expandtab
% \end{macrocode}