summaryrefslogtreecommitdiff
path: root/tex/context/base/cont-new.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/cont-new.mkiv')
-rw-r--r--tex/context/base/cont-new.mkiv84
1 files changed, 69 insertions, 15 deletions
diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv
index c97575baa..74d4173a3 100644
--- a/tex/context/base/cont-new.mkiv
+++ b/tex/context/base/cont-new.mkiv
@@ -19,27 +19,66 @@
\enablemode[mkiv]
+% potential new defaults:
+
+% \setbreakpoints[compound]
+
\unprotect
-\appendtoks
- \ctxlua{garbagecollector.update()}%
-\to \everyshipout
+\ifx\clearmarks\undefined
+ \def\clearmarks {\begingroup\afterassignment\doclearmarks\scratchcounter}
+ \def\doclearmarks{\normalmarks\scratchcounter{}\endgroup}
+\fi
+
+\def\resetmark#1% we cannot use \normalmarks#1{}
+ {\global\@EA\chardef\csname\@@mrk\string#1\endcsname\zerocount
+ \@EA\clearmarks\csname\@@prk\string#1\endcsname
+ \global\@EA\let\csname\@@trk\string#1\endcsname\empty
+ \global\@EA\let\csname\@@frk\string#1\endcsname\empty
+ \global\@EA\let\csname\@@brk\string#1\endcsname\empty
+ \global\@EA\let\csname\@@crk\string#1\endcsname\empty}
+
+% \appendtoks
+% \ctxlua{garbagecollector.update()}%
+% \to \everyshipout
% texmf.instance will become just texmf
+%D Since this can be a showstopper, we report the path at the beginning
+%D as well as at the end of a run.
+
+\writestatus\m!lua{used config path - \ctxlua{tex.print(caches.configpath(texmf.instance))}}
+\writestatus\m!lua{used cache path - \ctxlua{tex.print(caches.path)}}
+
+%D For the moment we report some statistics. Later this will become an option,
+%D but for now we need this information.
+
\appendtoks
+ \writestatus\m!lua{used config path - \ctxlua{tex.print(caches.configpath(texmf.instance))}}%
+ \writestatus\m!lua{used cache path - \ctxlua{tex.print(caches.path)}}%
+ \writestatus\m!lua{modules/dumps/instances - \ctxlua{tex.print((status.luabytecodes-500).."/"..input.storage.done.."/"..status.luastates)}}%
\writestatus\m!lua{input load time - \ctxlua{input.loadtime(texmf.instance)} seconds}%
\writestatus\m!lua{fonts load time - \ctxlua{input.loadtime(fonts)} seconds}%
\writestatus\m!lua{xml load time - \ctxlua{input.loadtime(lxml)} seconds}%
\writestatus\m!lua{mps conversion time - \ctxlua{input.loadtime(mptopdf)} seconds}%
- \writestatus\m!lua{node processing time - \ctxlua{input.loadtime(nodes)} seconds}%
+ \writestatus\m!lua{node processing time - \ctxlua{input.loadtime(nodes)} seconds (including kernel)}%
+ \writestatus\m!lua{kernel processing time - \ctxlua{input.loadtime(kernel)} seconds}%
\writestatus\m!lua{attribute processing time - \ctxlua{input.loadtime(attributes)} seconds}%
- \writestatus\m!lua{used config path - \ctxlua{tex.print(caches.configpath(texmf.instance))}}%
- \writestatus\m!lua{used cache path - \ctxlua{tex.print(caches.path)}}%
- \writestatus\m!lua{modules/dumps/instances - \ctxlua{tex.print((status.luabytecodes-500).."/"..input.storage.done.."/"..status.luastates)}}%
- \writestatus\m!lua{current memory usage - \ctxlua{tex.print(status.luastate_bytes)} bytes}%
- \writestatus\m!lua{language load time - \ctxlua{input.loadtime(languages)} seconds (n=\ctxlua{tex.print(languages.n())})}%
+ \writestatus\m!lua{language load time - \ctxlua{input.loadtime(languages)} seconds (n=\ctxlua{tex.print(languages.hyphenation.n())})}%
\writestatus\m!lua{loaded fonts - \ctxlua{tex.print(fonts.logger.report())}}%
+ \writestatus\m!lua{loaded patterns - \ctxlua{tex.print(languages.logger.report())}}%
+ \writestatus\m!lua{current memory usage - \ctxlua{tex.print(status.luastate_bytes)} bytes}%
+ \writestatus\m!lua{cleaned up reserved nodes - \ctxlua{
+ tex.print(string.format("\letterpercent s nodes, \letterpercent s lists (of \letterpercent s)", nodes.cleanup_reserved(\number\topofboxstack)))
+ }}%
+\to \everybye
+
+% \appendtoks
+% \ctxlua{nodes.check_for_leaks()}%
+% \to \everygoodbye
+
+\appendtoks
+ \writestatus{remark}{temporary fallback to base mode for tlig and trep}% end of font-otf.lua
\to \everybye
\def\resettimer {\ctxlua{environment.starttime = os.clock()}}
@@ -49,10 +88,11 @@
%D For me.
\def\traceluausage
+ {\dosingleempty\dotraceluausage}
+
+\def\dotraceluausage[#1]%
{\ctxlua{debugger.enable()}%
- \appendtoks
- \ctxlua{debugger.disable() debugger.showstats(texio.write,5000)}%
- \to \everybye}
+ \appendtoks\ctxlua{debugger.disable() debugger.showstats(print,\doifnumberelse{#1}{#1}{5000})}\to\everybye}
%D Fonts (experimental AFM loading}
@@ -109,9 +149,9 @@
\definestartstop[randomized][\c!before=\dosetattribute{case}\plusfour,\c!after=]
-\def\WORD{\groupedcommand{\dosetattribute{case}\plusone }{}}
-\def\word{\groupedcommand{\dosetattribute{case}\plustwo }{}}
-\def\Word{\groupedcommand{\dosetattribute{case}\plusthree}{}} % \plusfour
+\def\WORD{\groupedcommand{\setcharactercasing[\plusone ]}{}}
+\def\word{\groupedcommand{\setcharactercasing[\plustwo ]}{}}
+\def\Word{\groupedcommand{\setcharactercasing[\plusthree]}{}} % \plusfour
\let\WORDS\WORD
\let\words\word
@@ -121,3 +161,17 @@
% \expanded{\defineactivecharacter \number"2000E} {\textdir TRT\relax}
% \expanded{\defineactivecharacter \number"2000F} {\textdir TLT\relax}
+
+\startluacode
+ local ss = { }
+ function ctx.writestatus(a,b)
+ local s = ss[a]
+ if not ss[a] then
+ s = a:rpadd(15) .. ":"
+ ss[a] = s
+ end
+ texio.write_nl(s .. b)
+ end
+\stopluacode
+
+\def\writestatus#1#2{\ctxlua{ctx.writestatus([[#1]],[[#2]])}}