bachotex-2019-followingup.tex /size: 10 Kb    last modification: 2020-07-01 14:35
1% language=uk
2
3\usemodule[abbreviations-smallcaps]
4\usemodule[present-luatex]
5
6\logo [LUAMETATEX] {LuaMeta\TeX}
7
8\setupbodyfont[12pt]
9
10\setupalign[verytolerant]
11
12\setupdocument
13  [title={The follow up},
14   subtitle={\LUAMETATEX},
15   location={Bacho\TeX\ May 2019},
16   author={Hans & Alan},
17   mp:title={\LUAMETATEX}]
18
19\startdocument
20
21\page \setupdocument[mp:subtitle={From lead to gold}]
22
23\startitemize
24    \startitem
25        This talk is {\bf not} about how we can use \LUATEX\ to control domotica
26        applications. We already discussed that.
27    \stopitem
28    \startitem
29        This talk is {\bf not} about how we can use \CONTEXT\ in advanced
30        rendering, for instance as part of web|-|based workflows. That's old
31        news.
32    \stopitem
33    \startitem
34        This talk is {\bf not} about how much fun it would be to have a
35        \MICROSOFT\ HoloLens and see what \CONTEXT\ and \LUATEX\ could do with
36        it. We just can't afford it.
37    \stopitem
38    \startitem
39        This talk is {\bf not} about more complexity, but it is about keeping
40        things simple. It's about turning a burden into a pleasure.
41    \stopitem
42    \startitem
43        To quote the Riverside \footnote {A Polish progrock band I recently saw
44        live in the Netherlands. A band related to Lunatic Soul.} frontman: I
45        hope you all leave here a bit younger than you felt when you came here.
46        This talk is about turning lead into gold.
47    \stopitem
48\stopitemize
49
50\page \setupdocument[mp:subtitle={Where do we stand}]
51
52\startitemize
53    \startitem
54        We have the weight and experience of about 40 years of \TEX\ and its
55        usage on our shoulders.
56    \stopitem
57    \startitem
58        Good old \TEX\ got extended: \ETEX, \OMEGA\ (\ALEPH), \PDFTEX, \XETEX,
59        [e][u][p]\TEX\ and \LUATEX\ (& \LUAJITTEX) showed up.
60    \stopitem
61    \startitem
62        The \DVI\ output got complemented by \PDF.
63    \stopitem
64    \startitem
65        Bitmap fonts were replaced by \TYPEONE\ that itself got replaced by the
66        container formats \OPENTYPE\ and \TRUETYPE. Variable fonts were
67        introduced.
68    \stopitem
69    \startitem
70        Math got upgraded to \OPENTYPE\ math, thanks to \MICROSOFT.
71    \stopitem
72    \startitem
73        \UNICODE\ got accepted and \UTF\ is nowadays the preferred input
74        encoding.
75    \stopitem
76    \startitem
77        The community supported the development of many fonts that found their
78        place in distributions.
79    \stopitem
80    \startitem
81        Alongside plain \TEX\ the macro packages \LATEX\ and \CONTEXT\ both
82        evolved into large collections of resources.
83    \stopitem
84\stopitemize
85
86\page \setupdocument[mp:subtitle={Are we good?}]
87
88\startitemize
89    \startitem
90        There is no doubt that \TEX\ is a success. We can find nice examples but
91        also some   horrible looking documents.
92    \stopitem
93    \startitem
94        A large distribution is no guarantee for quality and continuous success,
95        nor is the number of incidental (forced) users.
96    \stopitem
97    \startitem
98        A \CONTEXT\ user doesn't need that much: just the \LUATEX\ binary will
99        do, plus a bunch of \MKIV\ macros, completed by a reasonable set of
100        fonts.
101    \stopitem
102    \startitem
103        Currently all that is embedded in a large ecosystem, although we always
104        use only a small, reasonable subset.
105    \stopitem
106    \startitem
107        Getting the whole machinery up and running from scratch (source code) is
108        not trivial.
109    \stopitem
110    \startitem
111        The source code base is rather large and compilation is complex: it builds on
112        decades of being nice for all platforms and fulfilling all demands.
113    \stopitem
114    \startitem
115        What we consider gold could also be seen as lead in disguise. Some
116        alchemy might be needed to go back to where we came from.
117    \stopitem
118\stopitemize
119
120\page \setupdocument[mp:subtitle={The Status Quo}]
121
122\startitemize
123    \startitem
124        At some point you need to stabilize and for \LUATEX, version 1.10 is that
125        moment.
126    \stopitem
127    \startitem
128        But some ideas and experiments have been delayed because the engine was
129        already in use, also outside of \CONTEXT.
130    \stopitem
131    \startitem
132        Compatibility is a {\bf big} issue in the \TEX\ community (which is good)
133        so we're in a sort of a deadlock (which is bad).
134    \stopitem
135    \startitem
136        And we wanted to take a next step in \CONTEXT\ development. It's not
137        strictly necessary to make drastic changes, but we need to adapt.
138    \stopitem
139    \startitem
140        The question is how we can guarantee users a long|-|term stability of
141        the both macro package as well as the engine it runs on.
142    \stopitem
143\stopitemize
144
145\page \setupdocument[mp:subtitle={What Is Needed}]
146
147\startitemize
148    \startitem
149        For \CONTEXT\ we want just one binary. We don't really need \LUAJITTEX\
150        for \LUAJIT\ is not following \LUA\ anyway.
151    \stopitem
152    \startitem
153        We don't want (for windows) a special stub binary. After all we already
154        have the \type {context} job manager and \type {mtxrun} script manager.
155        All platforms should be treated alike.
156    \stopitem
157    \startitem
158        Performance should be stable and not influenced by code added to the
159        binary. In fact, performance should constantly improve!
160    \stopitem
161    \startitem
162        The engine should not depend on libraries that are floating, get updated
163        frequently, and can come from places out of our control (versions).
164    \stopitem
165    \startitem
166        The memory footprint should be acceptable for running in containers (or
167        small virtual machines). Energy consumption matters too.
168    \stopitem
169    \startitem
170        The binary should be kept small because it also serves as the \LUA\
171        interpreter.
172    \stopitem
173\stopitemize
174
175\page \setupdocument[mp:subtitle={How It Went}]
176
177\startitemize
178    \startitem
179        Around the \CONTEXT\ meeting I took \LUATEX\ 1.09.0 experimental as
180        starting point and began stripping.
181    \stopitem
182    \startitem
183        Before that, I already had written some test code to see what could be
184        replaced.
185    \stopitem
186    \startitem
187        Stepwise redundant components were removed. This took time because each
188        (small) step was tested on real documents, the test suite, etc.
189    \stopitem
190    \blank[2*big]
191    \startitem
192        \unknown\ maybe some examples & \type {/install-lmtx/*} \unknown
193    \stopitem
194    \blank[2*big]
195    \startitem
196        I played with some ideas that were put on hold, some were accepted and
197        some were rejected and more and more got in the mood.
198    \stopitem
199    \startitem
200        Also \LUAJIT\ was dropped, but its removal was compensated by large
201        performance boosts in other areas.
202    \stopitem
203    \startitem
204        The build was simplified (it took some time to find what was irrelevant)
205        and compilation now is about half a minute, or less!
206    \stopitem
207\stopitemize
208
209% we found out the hard way in the past (generalizing, other use, backfire)
210
211\page \setupdocument[mp:subtitle={Where are we}]
212
213\startitemize
214    \startitem
215        We have an experimental new installer for \CONTEXT\ \LMTX\ (the new
216        name). It uses \HTTP: and just the engine for fetching data. Updating
217        goes fast.
218    \stopitem
219    \startitem
220        The \LMTX\ distribution is \MKIV\ only and much smaller than the full
221        installation.
222    \stopitem
223    \startitem
224        Eventually (soon) the source code of the used engine will be in the
225        distribution so that we have a self contained package. Users on
226        new or unique systems can compile.
227    \stopitem
228    \startitem
229        The development of the engine is under control of the \CONTEXT\
230        developers: that way there is no danger that things break. We like to
231        have a playground.
232    \stopitem
233    \startitem
234        Extensions can make it into \LUATEX\ once found useful and stable as
235        long as they don't break \LUATEX\ upward compatibility (unlikely on the
236        short term).
237    \stopitem
238\stopitemize
239
240\page \setupdocument[mp:subtitle={Some highlights}]
241
242\startitemize
243    \startitem
244        There is no backend code. We generate the \PDF\ output in \LUA\ (this was
245        already the case for much of it.)
246    \stopitem
247    \startitem
248        There is no bitmap image inclusion code present. All is done in \LUA.
249    \stopitem
250    \startitem
251        There is no font loading code present. This already happened mostly in
252        \LUA\ anyway.
253    \stopitem
254    \startitem
255        Some libraries have been removed and some have been simplified. A few
256        experimental helper libraries were added (like math). The dependencies
257        are minimal.
258    \stopitem
259    \startitem
260        The code is undergoing some restructuring but it might take some years
261        before I've reached the (informal) goals.
262    \stopitem
263    \startitem
264        Alan and I are exploring new possibilities that this setup gives
265        (especially in combining \TEX, \METAPOST\ and \LUA. Stay tuned.
266    \stopitem
267\stopitemize
268
269\page \setupdocument[mp:subtitle={The agenda}]
270
271\startitemize
272    \startitem
273        As of April 1, 2019, users can test the experimental distribution. A few
274        were already in the loop.
275    \stopitem
276    \startitem
277        It looks like there are no big issues, and speed gains can be impressive.
278    \stopitem
279    \startitem
280        As a consequence we can start dropping in replacement code in regular \MKIV\
281        some day soon too.
282    \stopitem
283    \startitem
284        Around the next \CONTEXT\ meeting the source code will become part of the
285        regular distribution (given that I'm satisfied with it).
286    \stopitem
287    \startitem
288        Before that we hope to have the compile farm up and running for \LUAMETATEX.
289    \stopitem
290    \startitem
291        From that moment on, the \CONTEXT\ users will have a self contained, archival,
292        independent, lean and mean installation available, which will become the
293        default.
294    \stopitem
295    \startitem
296        Because \LUAMETATEX\ is a subset of \LUATEX, there are no plans right now
297        for supporting plain \TEX. We'll see. (I might come up with generic
298        backend code some day.)
299    \stopitem
300\stopitemize
301
302\stopdocument
303