diff options
Diffstat (limited to 'tex/context/base/luat-run.lua')
-rw-r--r-- | tex/context/base/luat-run.lua | 316 |
1 files changed, 158 insertions, 158 deletions
diff --git a/tex/context/base/luat-run.lua b/tex/context/base/luat-run.lua index eaede1030..6291fef1b 100644 --- a/tex/context/base/luat-run.lua +++ b/tex/context/base/luat-run.lua @@ -1,158 +1,158 @@ -if not modules then modules = { } end modules ['luat-run'] = { - version = 1.001, - comment = "companion to luat-lib.mkiv", - author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", - copyright = "PRAGMA ADE / ConTeXt Development Team", - license = "see context related readme files" -} - -local format = string.format -local insert = table.insert - --- trace_job_status is also controlled by statistics.enable that is set via the directive system.nostatistics - -local trace_lua_dump = false trackers.register("system.dump", function(v) trace_lua_dump = v end) -local trace_temp_files = false trackers.register("system.tempfiles", function(v) trace_temp_files = v end) -local trace_job_status = true trackers.register("system.jobstatus", function(v) trace_job_status = v end) -local trace_tex_status = false trackers.register("system.texstatus", function(v) trace_tex_status = v end) - -local report_lua = logs.reporter("system","lua") -local report_tex = logs.reporter("system","status") -local report_tempfiles = logs.reporter("resolvers","tempfiles") - -luatex = luatex or { } -local luatex = luatex - -local startactions = { } -local stopactions = { } - -function luatex.registerstartactions(...) insert(startactions, ...) end -function luatex.registerstopactions (...) insert(stopactions, ...) end - -local function start_run() - if logs.start_run then - logs.start_run() - end - for i=1,#startactions do - startactions[i]() - end -end - -local function stop_run() - for i=1,#stopactions do - stopactions[i]() - end - if trace_job_status then - statistics.show() - end - if trace_tex_status then - for k, v in table.sortedhash(status.list()) do - report_tex("%S=%S",k,v) - end - end - if logs.stop_run then - logs.stop_run() - end -end - -local function start_shipout_page() - logs.start_page_number() -end - -local function stop_shipout_page() - logs.stop_page_number() -end - -local function report_output_pages() -end - -local function report_output_log() -end - --- local function show_open() --- end - --- local function show_close() --- end - -local function pre_dump_actions() - lua.finalize(trace_lua_dump and report_lua or nil) - -- statistics.savefmtstatus("\jobname","\contextversion","context.tex") -end - --- this can be done later - -callbacks.register('start_run', start_run, "actions performed at the beginning of a run") -callbacks.register('stop_run', stop_run, "actions performed at the end of a run") - ----------.register('show_open', show_open, "actions performed when opening a file") ----------.register('show_close', show_close, "actions performed when closing a file") - -callbacks.register('report_output_pages', report_output_pages, "actions performed when reporting pages") -callbacks.register('report_output_log', report_output_log, "actions performed when reporting log file") - -callbacks.register('start_page_number', start_shipout_page, "actions performed at the beginning of a shipout") -callbacks.register('stop_page_number', stop_shipout_page, "actions performed at the end of a shipout") - -callbacks.register('process_input_buffer', false, "actions performed when reading data") -callbacks.register('process_output_buffer', false, "actions performed when writing data") - -callbacks.register("pre_dump", pre_dump_actions, "lua related finalizers called before we dump the format") -- comes after \everydump - --- an example: - -local tempfiles = { } - -function luatex.registertempfile(name,extrasuffix) - if extrasuffix then - name = name .. ".mkiv-tmp" -- maybe just .tmp - end - if trace_temp_files and not tempfiles[name] then - report_tempfiles("registering temporary file %a",name) - end - tempfiles[name] = true - return name -end - -function luatex.cleanuptempfiles() - for name, _ in next, tempfiles do - if trace_temp_files then - report_tempfiles("removing temporary file %a",name) - end - os.remove(name) - end - tempfiles = { } -end - -luatex.registerstopactions(luatex.cleanuptempfiles) - --- for the moment here - -local synctex = false - -local report_system = logs.reporter("system") - -directives.register("system.synctex", function(v) - synctex = v - if v then - report_system("synctex functionality is enabled!") - else - report_system("synctex functionality is disabled!") - end - synctex = tonumber(synctex) or (toboolean(synctex,true) and 1) or (synctex == "zipped" and 1) or (synctex == "unzipped" and -1) or false - -- currently this is bugged: - tex.synctex = synctex - -- so for the moment we need: - context.normalsynctex() - if synctex then - context.plusone() - else - context.zerocount() - end -end) - -statistics.register("synctex tracing",function() - if synctex or tex.synctex ~= 0 then - return "synctex has been enabled (extra log file generated)" - end -end) +if not modules then modules = { } end modules ['luat-run'] = {
+ version = 1.001,
+ comment = "companion to luat-lib.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format = string.format
+local insert = table.insert
+
+-- trace_job_status is also controlled by statistics.enable that is set via the directive system.nostatistics
+
+local trace_lua_dump = false trackers.register("system.dump", function(v) trace_lua_dump = v end)
+local trace_temp_files = false trackers.register("system.tempfiles", function(v) trace_temp_files = v end)
+local trace_job_status = true trackers.register("system.jobstatus", function(v) trace_job_status = v end)
+local trace_tex_status = false trackers.register("system.texstatus", function(v) trace_tex_status = v end)
+
+local report_lua = logs.reporter("system","lua")
+local report_tex = logs.reporter("system","status")
+local report_tempfiles = logs.reporter("resolvers","tempfiles")
+
+luatex = luatex or { }
+local luatex = luatex
+
+local startactions = { }
+local stopactions = { }
+
+function luatex.registerstartactions(...) insert(startactions, ...) end
+function luatex.registerstopactions (...) insert(stopactions, ...) end
+
+local function start_run()
+ if logs.start_run then
+ logs.start_run()
+ end
+ for i=1,#startactions do
+ startactions[i]()
+ end
+end
+
+local function stop_run()
+ for i=1,#stopactions do
+ stopactions[i]()
+ end
+ if trace_job_status then
+ statistics.show()
+ end
+ if trace_tex_status then
+ for k, v in table.sortedhash(status.list()) do
+ report_tex("%S=%S",k,v)
+ end
+ end
+ if logs.stop_run then
+ logs.stop_run()
+ end
+end
+
+local function start_shipout_page()
+ logs.start_page_number()
+end
+
+local function stop_shipout_page()
+ logs.stop_page_number()
+end
+
+local function report_output_pages()
+end
+
+local function report_output_log()
+end
+
+-- local function show_open()
+-- end
+
+-- local function show_close()
+-- end
+
+local function pre_dump_actions()
+ lua.finalize(trace_lua_dump and report_lua or nil)
+ -- statistics.savefmtstatus("\jobname","\contextversion","context.tex")
+end
+
+-- this can be done later
+
+callbacks.register('start_run', start_run, "actions performed at the beginning of a run")
+callbacks.register('stop_run', stop_run, "actions performed at the end of a run")
+
+---------.register('show_open', show_open, "actions performed when opening a file")
+---------.register('show_close', show_close, "actions performed when closing a file")
+
+callbacks.register('report_output_pages', report_output_pages, "actions performed when reporting pages")
+callbacks.register('report_output_log', report_output_log, "actions performed when reporting log file")
+
+callbacks.register('start_page_number', start_shipout_page, "actions performed at the beginning of a shipout")
+callbacks.register('stop_page_number', stop_shipout_page, "actions performed at the end of a shipout")
+
+callbacks.register('process_input_buffer', false, "actions performed when reading data")
+callbacks.register('process_output_buffer', false, "actions performed when writing data")
+
+callbacks.register("pre_dump", pre_dump_actions, "lua related finalizers called before we dump the format") -- comes after \everydump
+
+-- an example:
+
+local tempfiles = { }
+
+function luatex.registertempfile(name,extrasuffix)
+ if extrasuffix then
+ name = name .. ".mkiv-tmp" -- maybe just .tmp
+ end
+ if trace_temp_files and not tempfiles[name] then
+ report_tempfiles("registering temporary file %a",name)
+ end
+ tempfiles[name] = true
+ return name
+end
+
+function luatex.cleanuptempfiles()
+ for name, _ in next, tempfiles do
+ if trace_temp_files then
+ report_tempfiles("removing temporary file %a",name)
+ end
+ os.remove(name)
+ end
+ tempfiles = { }
+end
+
+luatex.registerstopactions(luatex.cleanuptempfiles)
+
+-- for the moment here
+
+local synctex = false
+
+local report_system = logs.reporter("system")
+
+directives.register("system.synctex", function(v)
+ synctex = v
+ if v then
+ report_system("synctex functionality is enabled!")
+ else
+ report_system("synctex functionality is disabled!")
+ end
+ synctex = tonumber(synctex) or (toboolean(synctex,true) and 1) or (synctex == "zipped" and 1) or (synctex == "unzipped" and -1) or false
+ -- currently this is bugged:
+ tex.synctex = synctex
+ -- so for the moment we need:
+ context.normalsynctex()
+ if synctex then
+ context.plusone()
+ else
+ context.zerocount()
+ end
+end)
+
+statistics.register("synctex tracing",function()
+ if synctex or tex.synctex ~= 0 then
+ return "synctex has been enabled (extra log file generated)"
+ end
+end)
|