From 8d8d528d2ad52599f11250cfc567fea4f37f2a8b Mon Sep 17 00:00:00 2001 From: Context Git Mirror Bot Date: Tue, 12 Jan 2016 17:15:07 +0100 Subject: 2016-01-12 16:26:00 --- tex/context/base/mkiv/status-mkiv.tex | 328 ++++++++++++++++++++++++++++++++++ 1 file changed, 328 insertions(+) create mode 100644 tex/context/base/mkiv/status-mkiv.tex (limited to 'tex/context/base/mkiv/status-mkiv.tex') diff --git a/tex/context/base/mkiv/status-mkiv.tex b/tex/context/base/mkiv/status-mkiv.tex new file mode 100644 index 000000000..8685c97ad --- /dev/null +++ b/tex/context/base/mkiv/status-mkiv.tex @@ -0,0 +1,328 @@ +\usemodule[abr-02] + +\setupbodyfont + [dejavu,9pt] + +\setuppapersize + [A4,landscape] + +\setuplayout + [width=middle, + height=middle, + backspace=.5cm, + topspace=.5cm, + footer=0pt, + header=1.25cm] + +\setuphead + [title] + [style=\bfa, + page=yes, + after={\blank[line]}] + +\setuppagenumbering + [location=] + +\setupheadertexts + [\currentdate] + [MkIV Status / Page \pagenumber] + +% \showmakeup +% \showallmakeup + +\starttext + +% logs.report (immediate) versus logs.messenger (in flow) + +\starttitle[title=Todo] + +\startitemize[packed] + \startitem currently the new namespace prefixes are not consistent but this + will be done when we're satisfied with one scheme \stopitem + \startitem there will be additional columns in the table, like for namespace + so we need another round of checking then \stopitem + \startitem the lua code will be cleaned up upgraded as some is quite old + and experimental \stopitem + \startitem we need a proper dependency tree and better defined loading order \stopitem + \startitem all dotag.. will be moved to the tags_.. namespace \stopitem + \startitem we need to check what messages are gone (i.e.\ clean up mult-mes) \stopitem + \startitem some commands can go from mult-def (and the xml file) \stopitem + \startitem check for setuphandler vs simplesetuphandler \stopitem + \startitem for the moment we will go for \type {xxxx_} namespaces that (mostly) match + the filename but later we can replace these by longer names (via a script) so + module writers should {\bf not} use the core commands with \type{_} in the + name \stopitem + \startitem the message system will be unified \stopitem + \startitem maybe rename dowhatevertexcommand to fromluawhatevertexcommand \stopitem + \startitem consider moving setups directly to lua end (e.g. in characterspacing, breakpoint, bitmaps etc.) \stopitem + \startitem more local temporary \type {\temp...} will become \type {\p_...} \stopitem + \startitem check all ctxlua calls for ctxcommand \stopitem + \startitem rename all those \type {\current}s in strc \stopitem + \startitem check \type {option} vs \type {options} \stopitem + \startitem check \type {type} vs \type {kind} \stopitem + \startitem check \type {label} vs \type {name} vs \type {tag} \stopitem + \startitem check \type {limop}, different limops should should be classes \stopitem + \startitem too many positions in simple files (itemize etc) \stopitem + \startitem math domains/dictionaries \stopitem + \startitem xtables don't span vertically with multilines (yet) \stopitem + \startitem notes in mixed columns \stopitem + \startitem floats in mixed columns \stopitem + \startitem check return values \type {os.execute} \stopitem + \startitem more r, d, k in xml code \stopitem + \startitem mathml, more in \LUA \stopitem + \startitem style: font-size, font, color handling in \HTML\ (lxml-css) \stopitem + \startitem a \type {\name {A.B.C DEF}} auto-nobreakspace \stopitem + \startitem redo \CWEB\ module with \LUA \stopitem + \startitem maybe move characters.blocks to its own file \stopitem + \startitem more local context = context in \LUA\ files \stopitem + \startitem check and optimize all storage.register and locals (cosmetics) \stopitem + \startitem check all used modules in \LUA\ (and local them) \stopitem + \startitem environment and basic lua helpers are now spread over too many files \stopitem + \startitem isolate tracers and showers \stopitem + \startitem check all possible usage of ctxcommand \stopitem + \startitem there are more s-* modules, like s-fnt-41 \stopitem + \startitem check (un)marked tables \stopitem +\stopitemize + +\stoptitle + +\starttitle[title=To keep an eye on] + +\startitemize[packed] + \startitem Currently lpeg replacements interpret the percent sign so we need to escape it. \stopitem + \startitem Currently numbers and strings are cast in comparisons bu tthat might change in the future. \stopitem +\stopitemize + +\stoptitle + +\definehighlight[notabenered] [color=darkred, style=bold] +\definehighlight[notabeneblue] [color=darkblue, style=bold] +\definehighlight[notabeneyellow] [color=darkyellow, style=bold] +\definehighlight[notabenemagenta][color=darkmagenta,style=bold] + +\startluacode + + local coremodules = dofile("status-mkiv.lua") + + local valid = table.tohash { + "toks", "attr", "page", "buff", "font", "colo", "phys", "supp", "typo", "strc", + "syst", "tabl", "spac", "scrn", "lang", "lxml", "mlib", "java", "pack", "math", + "symb", "grph", "anch", "luat", "mult", "back", "node", "meta", "norm", "catc", + "cldf", "file", "char", "core", "layo", "trac", "cont", "regi", "enco", "hand", + "unic", "sort", "blob", "type", "scrp", "prop", "chem", "bibl", "task", + "whatever", "mp", "s", "x", "m", "mtx", + } + + local specialcategories = { + mkvi = true, + } + + local what = { + "main", "core", "lua", "optional", "implementations", "extra", "extras", "metafun", "modules", "resources" + } + + local totaltodo = 0 + local totalpending = 0 + local totalobsolete = 0 + local totalloaded = 0 + + local function summary(nofloaded,noftodo,nofpending,nofobsolete) + + local nofdone = nofloaded - noftodo - nofpending - nofobsolete + + context.starttabulate { "|B|r|" } + context.HL() + context.NC() context("done") context.NC() context(nofdone) context.NC() context.NR() + context.NC() context("todo") context.NC() context(noftodo) context.NC() context.NR() + context.NC() context("pending") context.NC() context(nofpending) context.NC() context.NR() + context.NC() context("obsolete") context.NC() context(nofobsolete) context.NC() context.NR() + context.HL() + context.NC() context("loaded") context.NC() context(nofloaded) context.NC() context.NR() + context.HL() + context.stoptabulate() + + end + + if coremodules then + + local function tabelize(loaded,what) + + if loaded then + + local noftodo = 0 + local nofpending = 0 + local nofobsolete = 0 + local nofloaded = #loaded + local categories = { } + + for k, v in next, valid do + categories[k] = { } + end + + for i=1,nofloaded do + local l = loaded[i] + l.order = i + local category = string.match(l.filename,"([^%-]+)%-") or "whatever" + local c = categories[category] + if c then + c[#c+1] = l + end + end + + for k, loaded in table.sortedhash(categories) do + + local nofloaded = #loaded + + if nofloaded > 0 then + + table.sort(loaded,function(a,b) return a.filename < b.filename end) -- in place + + context.starttitle { title = string.format("%s: %s",what,k) } + + context.starttabulate { "|Tr|Tlw(3em)|Tlw(12em)|Tlw(12em)|Tlw(4em)|Tl|Tl|Tl|Tp|" } + context.NC() context.bold("order") + context.NC() context.bold("kind") + context.NC() context.bold("file") + context.NC() context.bold("loading") + context.NC() context.bold("status") + context.NC() context.bold("reference") + context.NC() context.bold("manual") + context.NC() context.bold("wiki") + context.NC() context.bold("comment") + context.NC() context.NR() + context.HL() + for i=1,nofloaded do + local module = loaded[i] + local status = module.status + local category = module.category + local filename = module.filename + context.NC() + context(module.order) + context.NC() + if specialcategories[category] then + context.notabeneblue(category) + else + context(category) + end + context.NC() + if #filename>20 then + context(string.sub(filename,1,18) .. "..") + else + context(filename) + end + context.NC() + context(module.loading) + context.NC() + if status == "todo" then + context.notabenered(status) + noftodo = noftodo + 1 + elseif status == "pending" then + context.notabeneyellow(status) + nofpending = nofpending + 1 + elseif status == "obsolete" then + context.notabenemagenta(status) + nofobsolete = nofobsolete + 1 + else + context(status) + end + context.NC() context(module.reference) + context.NC() context(module.manual) + context.NC() context(module.wiki) + context.NC() context(module.comment) + context.NC() context.NR() + end + context.stoptabulate() + + context.stoptitle() + + end + + end + + context.starttitle { title = string.format("summary of %s modules",what) } + + summary(nofloaded,noftodo,nofpending,nofobsolete) + + context.stoptitle() + + totaltodo = totaltodo + noftodo + totalpending = totalpending + nofpending + totalobsolete = totalobsolete + nofobsolete + totalloaded = totalloaded + nofloaded + + end + + end + + for i=1,#what do + tabelize(coremodules[what[i]],what[i]) + end + + end + + -- context.starttitle { title = "Valid prefixes" } + -- + -- for namespace, data in table.sortedhash(namespaces) do + -- if valid[namespace] then + -- context.type(namespace) + -- end + -- context.par() + -- end + -- + -- context.stoptitle() + + context.starttitle { title = string.format("summary of all",what) } + + summary(totalloaded,totaltodo,totalpending,totalobsolete) + + context.stoptitle() + + if io.exists("status-namespaces.lua") then + + context.starttitle { title = "messy namespaces" } + + local namespaces = dofile("status-namespaces.lua") + + for namespace, data in table.sortedhash(namespaces) do + if valid[namespace] then + else + context(namespace) + end + context.par() + end + + context.stoptitle() + + end + + if io.exists("status-registers.lua") then + + context.starttitle { title = "messy registers" } + + local registers = dofile("status-registers.lua") + + for register, data in table.sortedhash(registers) do + context(register) + context.par() + for name in table.sortedhash(data) do + context.quad() + context.type(name) + context.par() + end + context.par() + end + + context.stoptitle() + + end + + context.starttitle { title = "callbacks" } + + commands.showcallbacks() + + context.stoptitle() + +\stopluacode + + +\stoptext -- cgit v1.2.3