1
2
3\usemodule[abbreviationssmallcaps]
4\usemodule[presentluatex]
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 webbased workflows. Thats 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 cant afford it.
37 \stopitem
38 \startitem
39 This talk is {\bf not} about more complexity, but it is about keeping
40 things simple. Its 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 doesnt 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 were 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. Its 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 longterm 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 dont really need \LUAJITTEX\
150 for \LUAJIT\ is not following \LUA\ anyway.
151 \stopitem
152 \startitem
153 We dont 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 {installlmtx*} \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
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 dont 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 Ive 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 Im 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. Well see. (I might come up with generic
298 backend code some day.)
299 \stopitem
300\stopitemize
301
302\stopdocument
303 |