From 8d8d528d2ad52599f11250cfc567fea4f37f2a8b Mon Sep 17 00:00:00 2001
From: Context Git Mirror Bot <phg42.2a@gmail.com>
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<whatever>}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

