diff options
author | Taco Hoekwater <taco@elvenkind.com> | 2011-06-01 08:54:21 +0000 |
---|---|---|
committer | Taco Hoekwater <taco@elvenkind.com> | 2011-06-01 08:54:21 +0000 |
commit | d7ccb42582f85acf30568913610ccf4d602023fb (patch) | |
tree | 7292e3545a420676878e7451b68892d360c62cb6 /Master/texmf-dist/tex/context/base/page-str.lua | |
parent | 2d62a6fe9b80def59c392268022f1f9a2d6e358f (diff) |
commit context 2011.05.18
git-svn-id: svn://tug.org/texlive/trunk@22719 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/context/base/page-str.lua')
-rw-r--r-- | Master/texmf-dist/tex/context/base/page-str.lua | 39 |
1 files changed, 25 insertions, 14 deletions
diff --git a/Master/texmf-dist/tex/context/base/page-str.lua b/Master/texmf-dist/tex/context/base/page-str.lua index c4d1957c3e8..7ce0f3c0fa6 100644 --- a/Master/texmf-dist/tex/context/base/page-str.lua +++ b/Master/texmf-dist/tex/context/base/page-str.lua @@ -6,6 +6,8 @@ if not modules then modules = { } end modules ['page-str'] = { license = "see context related readme files" } +-- streams -> managers.streams + -- work in progresss .. unfinished local concat = table.concat @@ -13,14 +15,23 @@ local concat = table.concat local find_tail, write_node, free_node, copy_nodelist = node.slide, node.write, node.free, node.copy_list local vpack_nodelist, hpack_nodelist = node.vpack, node.hpack local texdimen, texbox = tex.dimen, tex.box +local settings_to_array = utilities.parsers.settings_to_array + +local nodes, node = nodes, node -local new_kern = nodes.kern -local new_glyph = nodes.glyph +local nodepool = nodes.pool +local tasks = nodes.tasks + +local new_kern = nodepool.kern +local new_glyph = nodepool.glyph local trace_collecting = false trackers.register("streams.collecting", function(v) trace_collecting = v end) local trace_flushing = false trackers.register("streams.flushing", function(v) trace_flushing = v end) -streams = streams or { } +local report_streams = logs.reporter("streams") + +streams = streams or { } -- might move to the builders namespace +local streams = streams local data, name, stack = { }, nil, { } @@ -63,7 +74,7 @@ function streams.collect(head,where) dana[1] = head end if trace_collecting then - logs.report("streams","appending snippet '%s' to slot %s",name,#dana) + report_streams("appending snippet '%s' to slot %s",name,#dana) end return nil, true else @@ -80,7 +91,7 @@ function streams.push(thename) if dana then dana[#dana+1] = false if trace_collecting then - logs.report("streams","pushing snippet '%s'",thename) + report_streams("pushing snippet '%s'",thename) end end end @@ -94,7 +105,7 @@ function streams.flush(name,copy) -- problem: we need to migrate afterwards -- nothing to flush elseif copy then if trace_flushing then - logs.report("streams","flushing copies of %s slots of '%s'",dn,name) + report_streams("flushing copies of %s slots of '%s'",dn,name) end for i=1,dn do local di = dana[i] @@ -107,7 +118,7 @@ function streams.flush(name,copy) -- problem: we need to migrate afterwards end else if trace_flushing then - logs.report("streams","flushing %s slots of '%s'",dn,name) + report_streams("flushing %s slots of '%s'",dn,name) end for i=1,dn do local di = dana[i] @@ -123,10 +134,10 @@ end function streams.synchronize(list) -- this is an experiment ! -- we don't optimize this as we want to trace in detail - list = aux.settings_to_array(list) + list = settings_to_array(list) local max = 0 if trace_flushing then - logs.report("streams","synchronizing list: %s",concat(list," ")) + report_streams("synchronizing list: %s",concat(list," ")) end for i=1,#list do local dana = data[list[i]] @@ -138,7 +149,7 @@ function streams.synchronize(list) -- this is an experiment ! end end if trace_flushing then - logs.report("streams","maximum number of slots: %s",max) + report_streams("maximum number of slots: %s",max) end for m=1,max do local height, depth = 0, 0 @@ -157,12 +168,12 @@ function streams.synchronize(list) -- this is an experiment ! end dana[m] = vbox if trace_flushing then - logs.report("streams","slot %s of '%s' is packed to height %s and depth %s",m,name,ht,dp) + report_streams("slot %s of '%s' is packed to height %s and depth %s",m,name,ht,dp) end end end if trace_flushing then - logs.report("streams","slot %s has max height %s and max depth %s",m,height,depth) + report_streams("slot %s has max height %s and max depth %s",m,height,depth) end local strutht, strutdp = texdimen.globalbodyfontstrutheight, texdimen.globalbodyfontstrutdepth local struthtdp = strutht + strutdp @@ -178,7 +189,7 @@ function streams.synchronize(list) -- this is an experiment ! -- actually we need to add glue and repack vbox.height, vbox.depth = height, depth if trace_flushing then - logs.report("streams","slot %s of '%s' with delta (%s,%s) is compensated",m,i,delta_height,delta_depth) + report_streams("slot %s of '%s' with delta (%s,%s) is compensated",m,i,delta_height,delta_depth) end else -- this is not yet ok as we also need to keep an eye on vertical spacing @@ -199,7 +210,7 @@ function streams.synchronize(list) -- this is an experiment ! vbox.list = nil free_node(vbox) if trace_flushing then - logs.report("streams","slot %s:%s with delta (%s,%s) is compensated by %s lines",m,i,delta_height,delta_depth,n) + report_streams("slot %s:%s with delta (%s,%s) is compensated by %s lines",m,i,delta_height,delta_depth,n) end end end |