summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/mkiv/luat-run.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/mkiv/luat-run.lua')
-rw-r--r--Master/texmf-dist/tex/context/base/mkiv/luat-run.lua49
1 files changed, 39 insertions, 10 deletions
diff --git a/Master/texmf-dist/tex/context/base/mkiv/luat-run.lua b/Master/texmf-dist/tex/context/base/mkiv/luat-run.lua
index d29a463b88c..874287ee1a0 100644
--- a/Master/texmf-dist/tex/context/base/mkiv/luat-run.lua
+++ b/Master/texmf-dist/tex/context/base/mkiv/luat-run.lua
@@ -45,6 +45,7 @@ local function start_run()
if logs.start_run then
logs.start_run()
end
+ -- logs.report("engine","%s version %s, format id %s",LUATEXENGINE,LUATEXVERSION,LUATEXFORMATID)
for i=1,#startactions do
startactions[i]()
end
@@ -61,7 +62,9 @@ local function stop_run()
if trace_tex_status then
logs.newline()
for k, v in table.sortedhash(status.list()) do
- report_tex("%S=%S",k,v)
+ if type(v) ~= "table" then
+ report_tex("%S=%S",k,v)
+ end
end
end
if quit then
@@ -99,18 +102,11 @@ end
local function report_output_log()
end
--- local function show_open()
--- end
-
--- local function show_close()
--- end
-
local function pre_dump_actions()
for i=1,#dumpactions do
dumpactions[i]()
end
lua.finalize(trace_lua_dump and report_lua or nil)
- -- statistics.savefmtstatus("\jobname","\contextversion","context.tex")
end
local function wrapup_synctex()
@@ -131,10 +127,10 @@ appendgroup(wrapupactions,"user")
appendgroup(cleanupactions,"system")
appendgroup(cleanupactions,"user")
-local function wrapup_run()
+local function wrapup_run(someerror)
local runner = wrapupactions.runner
if runner then
- runner()
+ runner(someerror) -- we could use the error flag in lmtx
end
end
@@ -297,3 +293,36 @@ end)
-- end
-- end)
+local report = logs.reporter("csname overload")
+local reported = { }
+
+callback.register("handle_overload", function(fatal,overload,csname,flags)
+ if not reported[csname] then
+ logs.newline()
+ local readstate = status.readstate
+ local filename = readstate.filename
+ local linenumber = readstate.linenumber
+ local flags = tokens.flags and tokens.flags(csname) or { }
+ if filename and linenumber then
+ report("%s, protection level %i, control sequence %a, properties '% t', file %a, line %i",
+ fatal and "fatal error" or "warning",overload,csname,flags,filename,linenumber)
+ else
+ report("%s, protection level %i, control sequence %a, properties '% t'",
+ fatal and "fatal error" or "warning",overload,csname,flags)
+ end
+ reported[csname] = true
+ logs.newline()
+ if fatal then
+ cleanup_run()
+ osexit(1)
+ end
+ end
+end)
+
+-- bonus
+
+if environment.initex then
+
+ luatex.registerdumpactions(statistics.showmemory)
+
+end