From 5f6a7c6790baa7e524de5b5bf71a29ea757378f6 Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Sun, 12 May 2019 19:57:39 +0200 Subject: 2019-05-12 19:16:00 --- .../bachotex/2019/bachotex-2019-followingup.tex | 302 +++++++++++++++++++++ 1 file changed, 302 insertions(+) create mode 100644 doc/context/presentations/bachotex/2019/bachotex-2019-followingup.tex (limited to 'doc/context/presentations/bachotex/2019/bachotex-2019-followingup.tex') diff --git a/doc/context/presentations/bachotex/2019/bachotex-2019-followingup.tex b/doc/context/presentations/bachotex/2019/bachotex-2019-followingup.tex new file mode 100644 index 000000000..b7c116ab3 --- /dev/null +++ b/doc/context/presentations/bachotex/2019/bachotex-2019-followingup.tex @@ -0,0 +1,302 @@ +% language=uk + +\usemodule[abbreviations-smallcaps] +\usemodule[present-luatex] + +\logo [LUAMETATEX] {LuaMeta\TeX} + +\setupbodyfont[12pt] + +\setupalign[verytolerant] + +\setupdocument + [title={The follow up}, + subtitle={\LUAMETATEX}, + location={Bacho\TeX\ May 2019}, + author={Hans & Alan}, + mp:title={\LUAMETATEX}] + +\startdocument + +\page \setupdocument[mp:subtitle={From lead to gold}] + +\startitemize + \startitem + This talk is {\bf not} about how we can use \LUATEX\ to control domotica + applications. We already discussed that. + \stopitem + \startitem + This talk is {\bf not} about how we can use \CONTEXT\ in advanced + rendering, for instance as part of web|-|based workflows. That's old + news. + \stopitem + \startitem + This talk is {\bf not} about how much fun it would be to have a + \MICROSOFT\ HoloLens and see what \CONTEXT\ and \LUATEX\ could do with + it. We just can't afford it. + \stopitem + \startitem + This talk is {\bf not} about more complexity, but it is about keeping + things simple. It's about turning a burden into a pleasure. + \stopitem + \startitem + To quote the Riverside \footnote {A Polish progrock band I recently saw + live in the Netherlands. A band related to Lunatic Soul.} frontman: I + hope you all leave here a bit younger than you felt when you came here. + This talk is about turning lead into gold. + \stopitem +\stopitemize + +\page \setupdocument[mp:subtitle={Where do we stand}] + +\startitemize + \startitem + We have the weight and experience of about 40 years of \TEX\ and its + usage on our shoulders. + \stopitem + \startitem + Good old \TEX\ got extended: \ETEX, \OMEGA\ (\ALEPH), \PDFTEX, \XETEX, + [e][u][p]\TEX\ and \LUATEX\ (& \LUAJITTEX) showed up. + \stopitem + \startitem + The \DVI\ output got complemented by \PDF. + \stopitem + \startitem + Bitmap fonts were replaced by \TYPEONE\ that itself got replaced by the + container formats \OPENTYPE\ and \TRUETYPE. Variable fonts were + introduced. + \stopitem + \startitem + Math got upgraded to \OPENTYPE\ math, thanks to \MICROSOFT. + \stopitem + \startitem + \UNICODE\ got accepted and \UTF\ is nowadays the preferred input + encoding. + \stopitem + \startitem + The community supported the development of many fonts that found their + place in distributions. + \stopitem + \startitem + Alongside plain \TEX\ the macro packages \LATEX\ and \CONTEXT\ both + evolved into large collections of resources. + \stopitem +\stopitemize + +\page \setupdocument[mp:subtitle={Are we good?}] + +\startitemize + \startitem + There is no doubt that \TEX\ is a success. We can find nice examples but + also some horrible looking documents. + \stopitem + \startitem + A large distribution is no guarantee for quality and continuous success, + nor is the number of incidental (forced) users. + \stopitem + \startitem + A \CONTEXT\ user doesn't need that much: just the \LUATEX\ binary will + do, plus a bunch of \MKIV\ macros, completed by a reasonable set of + fonts. + \stopitem + \startitem + Currently all that is embedded in a large ecosystem, although we always + use only a small, reasonable subset. + \stopitem + \startitem + Getting the whole machinery up and running from scratch (source code) is + not trivial. + \stopitem + \startitem + The source code base is rather large and compilation is complex: it builds on + decades of being nice for all platforms and fulfilling all demands. + \stopitem + \startitem + What we consider gold could also be seen as lead in disguise. Some + alchemy might be needed to go back to where we came from. + \stopitem +\stopitemize + +\page \setupdocument[mp:subtitle={The Status Quo}] + +\startitemize + \startitem + At some point you need to stabilize and for \LUATEX, version 1.10 is that + moment. + \stopitem + \startitem + But some ideas and experiments have been delayed because the engine was + already in use, also outside of \CONTEXT. + \stopitem + \startitem + Compatibility is a {\bf big} issue in the \TEX\ community (which is good) + so we're in a sort of a deadlock (which is bad). + \stopitem + \startitem + And we wanted to take a next step in \CONTEXT\ development. It's not + strictly necessary to make drastic changes, but we need to adapt. + \stopitem + \startitem + The question is how we can guarantee users a long|-|term stability of + the both macro package as well as the engine it runs on. + \stopitem +\stopitemize + +\page \setupdocument[mp:subtitle={What Is Needed}] + +\startitemize + \startitem + For \CONTEXT\ we want just one binary. We don't really need \LUAJITTEX\ + for \LUAJIT\ is not following \LUA\ anyway. + \stopitem + \startitem + We don't want (for windows) a special stub binary. After all we already + have the \type {context} job manager and \type {mtxrun} script manager. + All platforms should be treated alike. + \stopitem + \startitem + Performance should be stable and not influenced by code added to the + binary. In fact, performance should constantly improve! + \stopitem + \startitem + The engine should not depend on libraries that are floating, get updated + frequently, and can come from places out of our control (versions). + \stopitem + \startitem + The memory footprint should be acceptable for running in containers (or + small virtual machines). Energy consumption matters too. + \stopitem + \startitem + The binary should be kept small because it also serves as the \LUA\ + interpreter. + \stopitem +\stopitemize + +\page \setupdocument[mp:subtitle={How It Went}] + +\startitemize + \startitem + Around the \CONTEXT\ meeting I took \LUATEX\ 1.09.0 experimental as + starting point and began stripping. + \stopitem + \startitem + Before that, I already had written some test code to see what could be + replaced. + \stopitem + \startitem + Stepwise redundant components were removed. This took time because each + (small) step was tested on real documents, the test suite, etc. + \stopitem + \blank[2*big] + \startitem + \unknown\ maybe some examples & \type {/install-lmtx/*} \unknown + \stopitem + \blank[2*big] + \startitem + I played with some ideas that were put on hold, some were accepted and + some were rejected and more and more got in the mood. + \stopitem + \startitem + Also \LUAJIT\ was dropped, but its removal was compensated by large + performance boosts in other areas. + \stopitem + \startitem + The build was simplified (it took some time to find what was irrelevant) + and compilation now is about half a minute, or less! + \stopitem +\stopitemize + +% we found out the hard way in the past (generalizing, other use, backfire) + +\page \setupdocument[mp:subtitle={Where are we}] + +\startitemize + \startitem + We have an experimental new installer for \CONTEXT\ \LMTX\ (the new + name). It uses \HTTP: and just the engine for fetching data. Updating + goes fast. + \stopitem + \startitem + The \LMTX\ distribution is \MKIV\ only and much smaller than the full + installation. + \stopitem + \startitem + Eventually (soon) the source code of the used engine will be in the + distribution so that we have a self contained package. Users on + new or unique systems can compile. + \stopitem + \startitem + The development of the engine is under control of the \CONTEXT\ + developers: that way there is no danger that things break. We like to + have a playground. + \stopitem + \startitem + Extensions can make it into \LUATEX\ once found useful and stable as + long as they don't break \LUATEX\ upward compatibility (unlikely on the + short term). + \stopitem +\stopitemize + +\page \setupdocument[mp:subtitle={Some highlights}] + +\startitemize + \startitem + There is no backend code. We generate the \PDF\ output in \LUA\ (this was + already the case for much of it.) + \stopitem + \startitem + There is no bitmap image inclusion code present. All is done in \LUA. + \stopitem + \startitem + There is no font loading code present. This already happened mostly in + \LUA\ anyway. + \stopitem + \startitem + Some libraries have been removed and some have been simplified. A few + experimental helper libraries were added (like math). The dependencies + are minimal. + \stopitem + \startitem + The code is undergoing some restructuring but it might take some years + before I've reached the (informal) goals. + \stopitem + \startitem + Alan and I are exploring new possibilities that this setup gives + (especially in combining \TEX, \METAPOST\ and \LUA. Stay tuned. + \stopitem +\stopitemize + +\page \setupdocument[mp:subtitle={The agenda}] + +\startitemize + \startitem + As of April 1, 2019, users can test the experimental distribution. A few + were already in the loop. + \stopitem + \startitem + It looks like there are no big issues, and speed gains can be impressive. + \stopitem + \startitem + As a consequence we can start dropping in replacement code in regular \MKIV\ + some day soon too. + \stopitem + \startitem + Around the next \CONTEXT\ meeting the source code will become part of the + regular distribution (given that I'm satisfied with it). + \stopitem + \startitem + Before that we hope to have the compile farm up and running for \LUAMETATEX. + \stopitem + \startitem + From that moment on, the \CONTEXT\ users will have a self contained, archival, + independent, lean and mean installation available, which will become the + default. + \stopitem + \startitem + Because \LUAMETATEX\ is a subset of \LUATEX, there are no plans right now + for supporting plain \TEX. We'll see. (I might come up with generic + backend code some day.) + \stopitem +\stopitemize + +\stopdocument -- cgit v1.2.3