context-2016-luatex.tex /size: 5663 b    last modification: 2020-07-01 14:35
1\usemodule[present-luatex]
2
3\startdocument
4  [title={\luaTeX},
5   subtitle={Version 1.00},
6   location={ConTeXt meeting \emdash\ September 2016},
7   mp:title={luatex},
8   mp:subtitle={1.00\space\endash\space2016}]
9
10\startstandardmakeup
11
12After ten years of stepwise development and experimenting we release version 1.00
13of \LuaTeX\ during the 10\high{th} \ConTeXt\ meeting in the Netherlands, September
142016.
15
16The interface is now rather stable and will not change significantly which means
17that one can write stable packages.
18
19So, it's time for a bit reflection as well as time to tell what we will be doing
20next.
21
22\stopstandardmakeup
23
24\startstandardmakeup
25
26Around 2005, after we talked a bit about it, Hartmut added the \Lua\ scripting
27language to \pdfTeX\ as an experiment.
28
29This add|-|on was inspired by the \Lua\ extension to the Scite editor that I
30(still) use.
31
32\stopstandardmakeup
33
34\startstandardmakeup
35
36One could query counter registers and box dimensions and print strings to the
37\TeX\ input buffer.
38
39The Oriental \TeX\ project then made it possible to go forward and come up with a
40complete interface.
41
42For this, Taco converted the code base from Pascal to C, an impressive effort.
43
44\stopstandardmakeup
45
46\startstandardmakeup
47
48We spent more than a year intensively discussing, testing and implementing
49the interface between \TeX\ and \Lua.
50
51In successive years we polished things and extended bits and pieces.
52
53The last few years we cleaned up, filled in gaps and reached the point where we
54were more of less satisfied.
55
56\stopstandardmakeup
57
58\startstandardmakeup
59
60The core is still traditional \TeX, but extended with \pdfTeX\ protrusion and
61expansion (reworked) and directional features from Aleph (cleaned up).
62
63\stopstandardmakeup
64
65\startstandardmakeup
66
67The font subsystem accept now wide fonts.
68
69The hyphenation machinery can use runtime loaded (and extended) patterns.
70
71Hyphenation, ligaturing, kerning are separated.
72
73Most steps in processing node lists can be intercepted using callbacks.
74
75The math machinery has opentype math code paths.
76
77\stopstandardmakeup
78
79\startstandardmakeup
80
81All in- and output can be controlled and intercepted.
82
83The backend code has been separated better.
84
85You can write (simple) parsers.
86
87Nodes can be accessed and manipulated.
88
89Images and reuseable boxes are now native.
90
91\stopstandardmakeup
92
93\startstandardmakeup
94
95The project is driven by \ConTeXt\ users and \ConTeXt\ development.
96
97Right from the start \ConTeXt\ supported \LuaTeX.
98
99This means that most mechanisms have been tested in production.
100
101Raw performance is less than 8 bit \pdfTeX\ but in practice and on modern
102machines \LuaTeX\ behaves well.
103
104\stopstandardmakeup
105
106\startstandardmakeup
107
108We will continue development, but functionality will stay stable within versions.
109Of course bugs will be fixed.
110
111The code will be further streamlined and documented. We deliberately postponed some
112cleanup till after version 1.00.
113
114Of course the manual will be improved over time.
115
116\stopstandardmakeup
117
118\startstandardmakeup[bottom=,top=]
119
120    \vfil
121
122    \ssbf
123
124    Hans Hagen     \par
125    Hartmut Henkel \par
126    Taco Hoekwater \par
127    Luigi Scarso   \par
128
129    \vfil \vfil \vfil
130
131    \txx
132
133    many thanks to all the\break
134    early adopters
135
136    \vfil
137
138\stopstandardmakeup
139
140% ideas
141
142\startstandardmakeup
143
144    \midaligned{Some ideas (1)}
145
146    So far we managed to avoid extensions beyond those needed as part of the opening
147    up.
148
149    We stick close to Don Knuths concepts so that existing documentation still
150    conceptualy applies. We keep our promise of not adding to the core.
151
152    We might open up (make configureable) some of the still hard coded properties.
153
154\stopstandardmakeup
155
156\startstandardmakeup
157
158    \midaligned{Some ideas (2)}
159
160    Some node lists can use a bit of (non critical) cleanup, for instance passive
161    nodes, local par nodes, and other left|-|overs. Maybe we should add missing
162    left|/|right skips.
163
164\stopstandardmakeup
165
166\startstandardmakeup
167
168    \midaligned{Some ideas (3)}
169
170    We can optimize some callback resolution (more direct) so that we can gain a little
171    performance.
172
173\stopstandardmakeup
174
175\startstandardmakeup
176
177    \midaligned{Some ideas (4)}
178
179    Inheritance of attributes needs checking and maybe we need to permits some more
180    explicit settings.
181
182\stopstandardmakeup
183
184\startstandardmakeup
185
186    \midaligned{Some ideas (5)}
187
188    Bring some more code to the api file. Use the global PDF and \Lua\ states
189    consistently. Some macros can probably go away.
190
191\stopstandardmakeup
192
193\startstandardmakeup
194
195    \midaligned{Some ideas (6)}
196
197    Minimize return values of \Lua\ functions; only return nil when we expect
198    multiple calls in in one line.
199
200\stopstandardmakeup
201
202\startstandardmakeup
203
204    \midaligned{Some ideas (7)}
205
206    Figure out a way to deal with literals in virtual characters (relates to font
207    switching in the result).
208
209\stopstandardmakeup
210
211\startstandardmakeup
212
213    \midaligned{Some ideas (8)}
214
215    Maybe reorganize some code so that documentation is easier. See if we can stick
216    close to what Don Knuth documents.
217
218\stopstandardmakeup
219
220\startstandardmakeup
221
222    \midaligned{Some ideas (9)}
223
224    Cleanup and isolate the backend a bit more. Maybe add a bit more options to
225    delegate to \Lua. Get rid of some historic PDF artifacts.
226
227\stopstandardmakeup
228
229\startstandardmakeup
230
231    \midaligned{Some ideas (10)}
232
233    It is tempting to think of a (lean and mean) \LuaTeX\ variant for \ConTeXt.
234
235    We will not touch stable unless it concerns bug fixes, but we will expose
236    \ConTeXt\ users to the experimental branch (as we do now).
237
238    So \unknown\ be prepared.
239
240\stopstandardmakeup
241
242\stopdocument
243