diff options
author | Hans Hagen <pragma@wxs.nl> | 2020-01-26 19:35:43 +0100 |
---|---|---|
committer | Context Git Mirror Bot <phg@phi-gamma.net> | 2020-01-26 19:35:43 +0100 |
commit | 43fc66771a0c9d27cc0b7fe7a69392ea313bd0ca (patch) | |
tree | 9b339c63cd28528e5062fe980e964808df619374 /tex | |
parent | 5189b2143a30a39cd3533569cbef3f06422cc1d9 (diff) | |
download | context-43fc66771a0c9d27cc0b7fe7a69392ea313bd0ca.tar.gz |
2020-01-26 18:37:00
Diffstat (limited to 'tex')
32 files changed, 239 insertions, 70 deletions
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii index 20cc26b93..9e0025e0f 100644 --- a/tex/context/base/mkii/cont-new.mkii +++ b/tex/context/base/mkii/cont-new.mkii @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2020.01.15 19:09} +\newcontextversion{2020.01.26 18:34} %D This file is loaded at runtime, thereby providing an %D excellent place for hacks, patches, extensions and new diff --git a/tex/context/base/mkii/context.mkii b/tex/context/base/mkii/context.mkii index 87441059d..aa7c02cf4 100644 --- a/tex/context/base/mkii/context.mkii +++ b/tex/context/base/mkii/context.mkii @@ -20,7 +20,7 @@ %D your styles an modules. \edef\contextformat {\jobname} -\edef\contextversion{2020.01.15 19:09} +\edef\contextversion{2020.01.26 18:34} %D For those who want to use this: diff --git a/tex/context/base/mkiv/attr-ini.mkiv b/tex/context/base/mkiv/attr-ini.mkiv index e4215ff00..49a1126b9 100644 --- a/tex/context/base/mkiv/attr-ini.mkiv +++ b/tex/context/base/mkiv/attr-ini.mkiv @@ -185,6 +185,12 @@ \unexpanded\def\showattributes{\clf_showattributes} +%D Todo: + +% \appendtoks +% \clf_cleanupattributes +% \to \everyafterpagebreak + \protect \endinput % for the luatex list: diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv index ce1abd040..2cc2a1098 100644 --- a/tex/context/base/mkiv/cont-new.mkiv +++ b/tex/context/base/mkiv/cont-new.mkiv @@ -13,7 +13,7 @@ % \normalend % uncomment this to get the real base runtime -\newcontextversion{2020.01.15 19:09} +\newcontextversion{2020.01.26 18:34} %D This file is loaded at runtime, thereby providing an excellent place for %D hacks, patches, extensions and new features. diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv index f75556d26..d4206a4e8 100644 --- a/tex/context/base/mkiv/context.mkiv +++ b/tex/context/base/mkiv/context.mkiv @@ -45,7 +45,7 @@ %D {YYYY.MM.DD HH:MM} format. \edef\contextformat {\jobname} -\edef\contextversion{2020.01.15 19:09} +\edef\contextversion{2020.01.26 18:34} \edef\contextkind {beta} %D Kind of special: diff --git a/tex/context/base/mkiv/context.mkxl b/tex/context/base/mkiv/context.mkxl index c3954baee..1b4da4e96 100644 --- a/tex/context/base/mkiv/context.mkxl +++ b/tex/context/base/mkiv/context.mkxl @@ -29,7 +29,7 @@ %D {YYYY.MM.DD HH:MM} format. \edef\contextformat {\jobname} -\edef\contextversion{2020.01.15 19:09} +\edef\contextversion{2020.01.26 18:34} \edef\contextkind {beta} %D Kind of special: diff --git a/tex/context/base/mkiv/data-exp.lua b/tex/context/base/mkiv/data-exp.lua index 1ebdeb1e5..98c2f6839 100644 --- a/tex/context/base/mkiv/data-exp.lua +++ b/tex/context/base/mkiv/data-exp.lua @@ -198,7 +198,7 @@ local function expandedhome() return usedhomedir end -local dohome = ((P("~")+P("$HOME")+P("%HOME%"))/expandedhome)^0 +local dohome = ((P("~") + P("$HOME") + P("%HOME%")) / expandedhome)^0 local cleanup = Cs(donegation * dohome * doslashes) resolvers.cleanpath = function(str) diff --git a/tex/context/base/mkiv/data-res.lua b/tex/context/base/mkiv/data-res.lua index d8ad81656..8afc09b97 100644 --- a/tex/context/base/mkiv/data-res.lua +++ b/tex/context/base/mkiv/data-res.lua @@ -744,7 +744,7 @@ variable = function(name) end expansion = function(name) - local expansions =instance.expansions + local expansions = instance.expansions local name = name and lpegmatch(dollarstripper,name) local result = name and expansions[name] return result ~= nil and result or "" diff --git a/tex/context/base/mkiv/lpdf-emb.lua b/tex/context/base/mkiv/lpdf-emb.lua index 8fb211a2d..8db2ecaf1 100644 --- a/tex/context/base/mkiv/lpdf-emb.lua +++ b/tex/context/base/mkiv/lpdf-emb.lua @@ -51,8 +51,6 @@ local pdfreserveobject = lpdf.reserveobject local pdfflushobject = lpdf.flushobject local pdfflushstreamobject = lpdf.flushstreamobject -local fontstreams = fonts.hashes.streams - local report_fonts = logs.reporter("backend","fonts") local trace_fonts = false diff --git a/tex/context/base/mkiv/luat-cnf.lua b/tex/context/base/mkiv/luat-cnf.lua index a39106744..4939b05c3 100644 --- a/tex/context/base/mkiv/luat-cnf.lua +++ b/tex/context/base/mkiv/luat-cnf.lua @@ -31,7 +31,7 @@ texconfig.param_size = 25000 texconfig.save_size = 100000 texconfig.stack_size = 10000 texconfig.function_size = 32768 -texconfig.properties_size = 262144 -- after that, we're a hash +texconfig.properties_size = 10000 texconfig.fix_mem_init = 750000 local stub = [[ @@ -145,7 +145,7 @@ function texconfig.init() local getbytecode = lua.getbytecode local callbytecode = lua.callbytecode or function(i) local b = getbytecode(i) - if b then + if type(b) == "function" then b() return true else @@ -160,7 +160,7 @@ function texconfig.init() -- local b = callbytecode(i) local e, b = pcall(callbytecode,i) if not e then - print("\nfatal error : unable to load bytecode, maybe wipe the cache first\n") + print(string.format("\nfatal error : unable to load bytecode register %%i, maybe wipe the cache first\n",i)) os.exit() end if b then diff --git a/tex/context/base/mkiv/luat-cod.lua b/tex/context/base/mkiv/luat-cod.lua index f38966443..51eab5a1d 100644 --- a/tex/context/base/mkiv/luat-cod.lua +++ b/tex/context/base/mkiv/luat-cod.lua @@ -31,12 +31,11 @@ texconfig.param_size = 25000 texconfig.save_size = 100000 texconfig.stack_size = 10000 texconfig.function_size = 32768 -texconfig.properties_size = 262144 -- nuts are actually kind of pointers (so we jump by size) +texconfig.properties_size = 10000 texconfig.fix_mem_init = 750000 -- registering bytecode chunks ------ bytecode = lua.bytecode or { } -- we use functions local bytedata = lua.bytedata or { } local bytedone = lua.bytedone or { } diff --git a/tex/context/base/mkiv/luat-sto.lua b/tex/context/base/mkiv/luat-sto.lua index ce891765a..620de9a15 100644 --- a/tex/context/base/mkiv/luat-sto.lua +++ b/tex/context/base/mkiv/luat-sto.lua @@ -72,7 +72,7 @@ if environment.initex then end local dumped = serialize(original,target) if trace_storage then - report_storage('saving %a in slot %a, size %s',message,max,#dumped) + report_storage("saving %a in slot %a, size %s",message,max,#dumped) end -- we don't need tracing in such tables dumped = concat({ definition, comment, dumped },"\n") diff --git a/tex/context/base/mkiv/mlib-mat.lua b/tex/context/base/mkiv/mlib-mat.lua index 4646a8979..6c82a4658 100644 --- a/tex/context/base/mkiv/mlib-mat.lua +++ b/tex/context/base/mkiv/mlib-mat.lua @@ -80,6 +80,10 @@ local m_y0 = m.y0 registerscript("m_y0", function() return local m_y1 = m.y1 registerscript("m_y1", function() return m_y1 (scannumeric()) end) local m_yn = m.yn registerscript("m_yn", function() return m_yn (scanpair ()) end) +if not (c and c.sin) then + return +end + local c_topair = c.topair local c_new = c.new diff --git a/tex/context/base/mkiv/mult-sys.mkiv b/tex/context/base/mkiv/mult-sys.mkiv index 14619316e..8f8794df7 100644 --- a/tex/context/base/mkiv/mult-sys.mkiv +++ b/tex/context/base/mkiv/mult-sys.mkiv @@ -460,6 +460,10 @@ \definesystemconstant {xoffset} \definesystemconstant {yoffset} +\definesystemconstant {topfloat} +\definesystemconstant {bottomfloat} +\definesystemconstant {pagefloat} + %D As the name of their define command states, the next set of constants is used in %D the message macro's. diff --git a/tex/context/base/mkiv/node-fin.lua b/tex/context/base/mkiv/node-fin.lua index 02c359174..a848cef69 100644 --- a/tex/context/base/mkiv/node-fin.lua +++ b/tex/context/base/mkiv/node-fin.lua @@ -12,10 +12,12 @@ if not modules then modules = { } end modules ['node-fin'] = { -- leaders are also triggers ... see colo-ext for an example (negate a box) local next, type, format = next, type, string.format +local setmetatableindex = table.setmetatableindex local attributes, nodes, node = attributes, nodes, node local nuts = nodes.nuts +local tonut = nodes.tonut local getnext = nuts.getnext local getid = nuts.getid @@ -26,6 +28,7 @@ local getwidth = nuts.getwidth local getwhd = nuts.getwhd local getorientation = nuts.getorientation local has_dimensions = nuts.has_dimensions +local getbox = nuts.getbox local setlist = nuts.setlist local setleader = nuts.setleader @@ -39,16 +42,9 @@ local nextnode = nuts.traversers.node local nodecodes = nodes.nodecodes local rulecodes = nodes.rulecodes ------ normalrule_code = rulecodes.normal local boxrule_code = rulecodes.box local imagerule_code = rulecodes.image local emptyrule_code = rulecodes.empty ------ userrule_code = rulecodes.user ------ overrule_code = rulecodes.over ------ underrule_code = rulecodes.under ------ fractionrule_code = rulecodes.fraction ------ radicalrule_code = rulecodes.radical ------ outlinerule_code = rulecodes.outline local glyph_code = nodecodes.glyph local disc_code = nodecodes.disc @@ -57,6 +53,9 @@ local rule_code = nodecodes.rule local hlist_code = nodecodes.hlist local vlist_code = nodecodes.vlist +local texlists = tex.lists +local texgetnest = tex.getnest + local states = attributes.states local numbers = attributes.numbers local a_trigger = attributes.private('trigger') @@ -635,3 +634,100 @@ end statistics.register("attribute processing time", function() return statistics.elapsedseconds(attributes,"front- and backend") end) + +-- -- -- + +do + + local cleaners = { } + local trace = true -- false + + function attributes.cleanup() + if next(cleaners) then + local values = setmetatableindex("table") + + if trace then + starttiming(values) + end + + local function check(l) + for n, id in nextnode, l do + if id == hlist_code or id == vlist_code or id == glue_code then + local l = getlist(n) + if l then + check(l) + end + end + for a in next, cleaners do + local v = getattr(n,a) + if v then + -- values[a] = values[a] + 1 + values[a][v] = true + end + end + end + end + + local top = texgetnest("ptr") + for i=1,top do + local l = texgetnest(i) + if l then + check(tonut(l.head)) + end + end + + do local l + l = tonut(texlists.page_ins_head) if l then check(l) end + l = tonut(texlists.contrib_head) if l then check(l) end + l = tonut(texlists.page_discards_head) if l then check(l) end + l = tonut(texlists.split_discards_head) if l then check(l) end + l = tonut(texlists.page_head) if l then check(l) end + end + + -- todo: traverseboxes + + for i=0,65535 do + local b = getbox(i) + if b then + local l = getlist(b) + if l then + check(l) + end + end + end + + for a, t in next, values do + cleaners[a](a,t) + end + + if trace then + stoptiming(values) + local a = table.sortedkeys(values) + local t = statistics.elapsedtime(values) + local r = tex.getcount("realpageno") + if #a == 0 then + logs.report("attributes","cleaning up at page %i took %s seconds, no attributes",r,t) + else + logs.report("attributes","cleaning up at page %i took %s seconds, attributes: % t",r,t,a) + end + end + end + end + + -- not yet used but when we do ... delay a call till we enable it (attr-ini.mkiv) + + -- local function show(a,t) for k, v in next, t do print(a,k) end end + -- + -- attributes.registercleaner( 1, show) + -- attributes.registercleaner( 2, show) + + function attributes.registercleaner(a,f) + cleaners[a] = f + end + + implement { + name = "cleanupattributes", + actions = attributes.cleanup, + } + +end diff --git a/tex/context/base/mkiv/node-res.lua b/tex/context/base/mkiv/node-res.lua index 4347fad47..a27f5c4e5 100644 --- a/tex/context/base/mkiv/node-res.lua +++ b/tex/context/base/mkiv/node-res.lua @@ -559,8 +559,7 @@ local function cleanup(nofboxes) -- todo return nr, nl, nofboxes -- can be nil end - -local function usage() +local usage = CONTEXTLMTXMODE > 0 and node.inuse or function() local t = { } for n, tag in gmatch(status.node_mem_usage,"(%d+) ([a-z_]+)") do t[tag] = tonumber(n) or 0 @@ -581,9 +580,13 @@ statistics.register("cleaned up reserved nodes", function() end) -- \topofboxstack statistics.register("node memory usage", function() -- comes after cleanup ! - local usage = status.node_mem_usage - if usage ~= "" then - return usage + local used = usage() + if next(used) then + local t, n = { }, 0 + for k, v in table.sortedhash(used) do + n = n + 1 ; t[n] = format("%s %s",v,k) + end + return table.concat(t,", ") end end) diff --git a/tex/context/base/mkiv/page-ffl.mkiv b/tex/context/base/mkiv/page-ffl.mkiv index 306c19790..176c4a185 100644 --- a/tex/context/base/mkiv/page-ffl.mkiv +++ b/tex/context/base/mkiv/page-ffl.mkiv @@ -65,7 +65,7 @@ \c!inbetween={\blank[\v!big]}, %\c!style, %\c!color, - \c!page=\v!yes] + \c!page=\v!left] \appendtoks \ifx\currentfacingfloatparent\empty @@ -74,8 +74,8 @@ \fi \to \everydefinefacingfloat -\newcount\c_strc_floats_saved -\newcount\c_strc_floats_flushed +\newcount\c_strc_floats_facing_saved +\newcount\c_strc_floats_facing_flushed \newbox\b_strc_floats_facing_l \newbox\b_strc_floats_facing_r @@ -83,12 +83,24 @@ \let\m_strc_floats_state\relax \def\strc_floats_facing_flush - {\ifnum\c_strc_floats_flushed<\c_strc_floats_saved - \strc_floats_facing_flush_indeed % less tracing + {\ifnum\c_strc_floats_facing_flushed<\c_strc_floats_facing_saved + \ifodd\c_strc_floats_facing_flushed + \ifodd\realpageno + \strc_floats_facing_flush_indeed + \doifelsependingpagecontent\relax{\null\page}% + \else + \fi + \else + \ifodd\realpageno + \else + \strc_floats_facing_flush_indeed + \doifelsependingpagecontent\relax{\null\page}% + \fi + \fi \fi} \def\strc_floats_facing_flush_indeed - {\global\advance\c_strc_floats_flushed\plusone + {\global\advance\c_strc_floats_facing_flushed\plusone \floatingpenalty\zerocount \insert\namedinsertionnumber\s!topfloat\bgroup \forgetall @@ -100,12 +112,12 @@ \prevdepth\maxdimen \fi \fi - \directboxfromcache{\currentfacingfloat}{\number\c_strc_floats_flushed}% + \directboxfromcache{\currentfacingfloat}{\number\c_strc_floats_facing_flushed}% \vkern\s_page_one_between_top_insert \egroup - \ifnum\c_strc_floats_saved=\c_strc_floats_flushed - \global\c_strc_floats_saved \zerocount - \global\c_strc_floats_flushed\zerocount + \ifnum\c_strc_floats_facing_saved=\c_strc_floats_facing_flushed + \global\c_strc_floats_facing_saved \zerocount + \global\c_strc_floats_facing_flushed\zerocount \resetboxesincache{\currentfacingfloat}% \fi} @@ -145,34 +157,34 @@ \fi\fi} \unexpanded\def\strc_floats_facing_handle - {\strc_floats_facing_collect - \doifnextbgroupelse + {\doifnextbgroupelse \strc_floats_facing_handle_indeed - \strc_floats_wrap_up} + \strc_floats_facing_wrap_up} \unexpanded\def\strc_floats_facing_handle_indeed {\dowithnextboxcontent \strc_floats_facing_setup - \strc_floats_facing_handle + {\strc_floats_facing_collect\strc_floats_facing_handle} \vbox} \unexpanded\def\startfacingfloat[#1]% {\begingroup % todo: \usepageparameter - \edef\p_page{\facingfloatparameter\c!page}% - \ifx\p_page\empty - \page[\p_page]% - \fi +% \edef\p_page{\facingfloatparameter\c!page}% +% \ifx\p_page\empty\else +% \page[\p_page]% +% \fi % \let\startcontent\bgroup \let\stopcontent\egroup \def\currentfacingfloat{#1}% + \let\m_strc_floats_state\v!left \strc_floats_facing_handle} \unexpanded\def\stopfacingfloat {\endgroup} -\unexpanded\def\strc_floats_wrap_up +\unexpanded\def\strc_floats_facing_wrap_up {\edef\p_spaceinbetween{\facingfloatparameter\c!spaceinbetween}% \ifx\p_spaceinbetween\empty \scratchdimen\zeropoint @@ -208,13 +220,9 @@ \else \setbox\scratchbox\vbox to \textheight{\box\scratchbox\vss}% \fi - \global\advance\c_strc_floats_saved\plusone - \putboxincache{\currentfacingfloat}{\number\c_strc_floats_saved}\scratchbox + \global\advance\c_strc_floats_facing_saved\plusone + \putboxincache{\currentfacingfloat}{\number\c_strc_floats_facing_saved}\scratchbox \endgroup \fi} -\appendtoks - \strc_floats_facing_flush -\to \everyafteroutput - \protect \endinput diff --git a/tex/context/base/mkiv/page-flt.mkiv b/tex/context/base/mkiv/page-flt.mkiv index e72ae314a..01ee8b689 100644 --- a/tex/context/base/mkiv/page-flt.mkiv +++ b/tex/context/base/mkiv/page-flt.mkiv @@ -20,10 +20,6 @@ \unprotect -\ifdefined\s!topfloat \else \def\s!topfloat {topfloat} \fi -\ifdefined\s!bottomfloat \else \def\s!bottomfloat{bottomfloat} \fi -\ifdefined\s!pagefloat \else \def\s!pagefloat {pagefloat} \fi - \defineinsertion[\s!topfloat] \defineinsertion[\s!bottomfloat] \defineinsertion[\s!pagefloat] diff --git a/tex/context/base/mkiv/page-ini.lua b/tex/context/base/mkiv/page-ini.lua index 3d5534128..17f4c44da 100644 --- a/tex/context/base/mkiv/page-ini.lua +++ b/tex/context/base/mkiv/page-ini.lua @@ -16,6 +16,8 @@ local texgetcount = tex.getcount local context = context local ctx_doifelse = commands.doifelse +local implement = interfaces.implement + local data = table.setmetatableindex("table") local last = 0 local pages = structures.pages @@ -177,19 +179,19 @@ luatex.registerpageactions(function() end end) -interfaces.implement { +implement { name = "markpage", arguments = "2 strings", actions = pages.mark } -interfaces.implement { +implement { name = "doifelsemarkedpage", arguments = "string", actions = { marked, ctx_doifelse } } -interfaces.implement { +implement { name = "markedpages", arguments = "string", actions = function(name) @@ -200,7 +202,7 @@ interfaces.implement { end } -interfaces.implement { +implement { name = "startmarkpages", arguments = "string", actions = function(name) @@ -208,7 +210,7 @@ interfaces.implement { end } -interfaces.implement { +implement { name = "stopmarkpages", arguments = "string", actions = function(name) @@ -217,3 +219,23 @@ interfaces.implement { end end } + +local tonut = nodes.tonut +local nextlist = nodes.nuts.traversers.list +local texlists = tex.lists + +implement { + name = "doifelsependingpagecontent", + actions = function() + local h = texlists.contrib_head + -- local t = texlists.contrib_tail + local p = false + if h then + for n in nextlist, tonut(h) do + p = true + break + end + end + ctx_doifelse(p) + end, +} diff --git a/tex/context/base/mkiv/page-ini.mkiv b/tex/context/base/mkiv/page-ini.mkiv index b1e3e7f8a..e56c3ac04 100644 --- a/tex/context/base/mkiv/page-ini.mkiv +++ b/tex/context/base/mkiv/page-ini.mkiv @@ -162,6 +162,7 @@ \strc_pagenumbers_increment_counters % should hook into an every \page_adapts_synchronize \page_otr_check_for_pending_inserts + \page_otr_command_flush_facing_floats \page_floats_flush_page_floats % before postponed blocks \page_spread_flush % defined later \ifnum#3=\plusone @@ -375,4 +376,8 @@ % \unexpanded\def\forcestrutdepth % {\par\ifvmode\ifinner\else\doforcestrutdepth\fi\fi} +% Also experimental: + +\unexpanded\def\doifelsependingpagecontent{\clf_doifelsependingpagecontent} + \protect \endinput diff --git a/tex/context/base/mkiv/page-one.mkiv b/tex/context/base/mkiv/page-one.mkiv index 31b4e22d9..85ed76da1 100644 --- a/tex/context/base/mkiv/page-one.mkiv +++ b/tex/context/base/mkiv/page-one.mkiv @@ -680,6 +680,9 @@ \endgroup \fi} +\unexpanded\def\page_one_command_flush_facing_floats + {\strc_floats_facing_flush} + \defineoutputroutine [\s!singlecolumn] [\s!page_otr_command_routine =\page_one_command_routine, @@ -703,8 +706,9 @@ \s!page_otr_command_flush_saved_floats =\page_one_command_flush_saved_floats, \s!page_otr_command_flush_all_floats =\page_one_command_flush_all_floats, \s!page_otr_command_flush_margin_blocks =\page_one_command_flush_margin_blocks, - \s!page_otr_command_test_column =\page_one_command_test_page - ] + \s!page_otr_command_test_column =\page_one_command_test_page, + \s!page_otr_command_flush_facing_floats =\page_one_command_flush_facing_floats +] % \setupoutputroutine % [\s!singlecolumn] diff --git a/tex/context/base/mkiv/page-otr.mkvi b/tex/context/base/mkiv/page-otr.mkvi index 909f5cd4d..6feb15a9d 100644 --- a/tex/context/base/mkiv/page-otr.mkvi +++ b/tex/context/base/mkiv/page-otr.mkvi @@ -285,6 +285,7 @@ \definesystemconstant{page_otr_command_flush_all_floats} \definesystemconstant{page_otr_command_flush_margin_blocks} \definesystemconstant{page_otr_command_test_column} +\definesystemconstant{page_otr_command_flush_facing_floats} \definesystemconstant{singlecolumn} \definesystemconstant{multicolumn} % will move @@ -313,7 +314,8 @@ \s!page_otr_command_flush_saved_floats, \s!page_otr_command_flush_all_floats, \s!page_otr_command_flush_margin_blocks, - \s!page_otr_command_test_column] + \s!page_otr_command_test_column, + \s!page_otr_command_flush_facing_floats] \appendtoks \setupoutputroutine[\s!singlecolumn]% diff --git a/tex/context/base/mkiv/page-run.lua b/tex/context/base/mkiv/page-run.lua index 53331fc0e..cb8cf0311 100644 --- a/tex/context/base/mkiv/page-run.lua +++ b/tex/context/base/mkiv/page-run.lua @@ -200,8 +200,8 @@ function commands.showusage() report(" string pointer : %s of %s", status.str_ptr, status.max_strings + status.init_str_ptr) report(" pool size : %s", status.pool_size) report("") - report(" node memory usage : %s of %s", status.node_mem_usage, status.var_mem_max) - report(" fixex memory end : %s of %s", status.fix_mem_end, status.fix_mem_max) + report(" node memory usage : %s of %s", status.var_used, status.var_mem_max) + report(" token memory usage : %s of %s", status.dyn_used, status.fix_mem_max) report("") report(" cs count : %s of %s", status.cs_count, status.hash_size + status.hash_extra) report("") diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf Binary files differindex f0a77a5a9..b7c571975 100644 --- a/tex/context/base/mkiv/status-files.pdf +++ b/tex/context/base/mkiv/status-files.pdf diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf Binary files differindex eeda6094f..453fc01db 100644 --- a/tex/context/base/mkiv/status-lua.pdf +++ b/tex/context/base/mkiv/status-lua.pdf diff --git a/tex/context/base/mkiv/strc-itm.lua b/tex/context/base/mkiv/strc-itm.lua index adec591c1..e2fbdc960 100644 --- a/tex/context/base/mkiv/strc-itm.lua +++ b/tex/context/base/mkiv/strc-itm.lua @@ -36,8 +36,8 @@ local function analyzeitemgroup(name,level) local stamp = f_stamp(name,n) local n = getvariable(stamp,level,1,0) local w = getvariable(stamp,level,2,0) - texsetcount("local","c_strc_itemgroups_max_items",n) - texsetdimen("local","d_strc_itemgroups_max_width",w) + texsetcount("c_strc_itemgroups_max_items",n) + texsetdimen("d_strc_itemgroups_max_width",w) end local function registeritemgroup(name,level,nofitems,maxwidth) diff --git a/tex/context/base/mkiv/syst-lua.mkiv b/tex/context/base/mkiv/syst-lua.mkiv index 0e2769d04..d275acd7d 100644 --- a/tex/context/base/mkiv/syst-lua.mkiv +++ b/tex/context/base/mkiv/syst-lua.mkiv @@ -118,4 +118,6 @@ %D The \MKIV\ version is a bit more limited than the \LMTX\ version because it only %D supports the standard math functions. +% maybe: \let\texexpr\expression + \protect \endinput diff --git a/tex/context/base/mkiv/syst-lua.mkxl b/tex/context/base/mkiv/syst-lua.mkxl index cceb4f160..cf20c3341 100644 --- a/tex/context/base/mkiv/syst-lua.mkxl +++ b/tex/context/base/mkiv/syst-lua.mkxl @@ -95,4 +95,6 @@ %D The \LMTX\ version supports te \type {xmath} and \type {xcomplex} functions and %D therefore one can have expressions that don't work in \MKIV. +% maybe: \let\texexpr\expression + \protect \endinput diff --git a/tex/context/base/mkiv/typo-chr.lua b/tex/context/base/mkiv/typo-chr.lua index 966df6098..7a0f1fd75 100644 --- a/tex/context/base/mkiv/typo-chr.lua +++ b/tex/context/base/mkiv/typo-chr.lua @@ -188,6 +188,14 @@ local function pickup(head,tail,str) end end +local function found(str) + local list = texgetnest() + if list then + local tail = list.tail + return tail and tail[a_marked] == marked[str] + end +end + local actions = { remove = function(specification) local list = texgetnest() @@ -254,6 +262,12 @@ interfaces.implement { arguments = "string", } +interfaces.implement { + name = "doifelsemarkedcontent", + actions = function(str) ctx_doifelse(found(str)) end, + arguments = "string", +} + -- We just put these here. interfaces.implement { diff --git a/tex/context/base/mkiv/typo-chr.mkiv b/tex/context/base/mkiv/typo-chr.mkiv index 7da783ceb..a648d4588 100644 --- a/tex/context/base/mkiv/typo-chr.mkiv +++ b/tex/context/base/mkiv/typo-chr.mkiv @@ -78,6 +78,9 @@ \def\typo_marked_remove[#1]% {\clf_pickupmarkedcontent action{remove}mark{#1}\relax} +\unexpanded\def\doifelsemarkedcontent#1% + {\clf_doifelsemarkedcontent{#1}} + %D A few helpers (put here for convenience): %D %D \starttyping diff --git a/tex/context/modules/common/s-abbreviations-logos.tex b/tex/context/modules/common/s-abbreviations-logos.tex index cafc296b5..9f1d5599e 100644 --- a/tex/context/modules/common/s-abbreviations-logos.tex +++ b/tex/context/modules/common/s-abbreviations-logos.tex @@ -57,7 +57,7 @@ \logo [CDROM] {cdrom} \logo [CID] {cid} \logo [CJK] {cjk} -\logo [CLD] {cld} +\logo [CLANG] {clang} \logo [CLD] {cld} \logo [CMAKE] {cmake} \logo [CMR] {cmr} @@ -204,6 +204,7 @@ \logo [MPTOPDF] {mptopdf} \logo [MSDOS] {msdos} \logo [MSEXCEL] {MS~Excel} +\logo [MSVC] {MSVC} \logo [MSWINDOWS] {MS~Windows} \logo [MSWORD] {MS~Word} \logo [MTXRUN] {mtxrun} diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 2882584ec..ce2794cf3 100644 --- a/tex/generic/context/luatex/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex/luatex-fonts-merged.lua @@ -1,6 +1,6 @@ -- merged file : c:/data/develop/context/sources/luatex-fonts-merged.lua -- parent file : c:/data/develop/context/sources/luatex-fonts.lua --- merge date : 01/15/20 19:09:43 +-- merge date : 01/26/20 18:34:44 do -- begin closure to overcome local limits and interference |