summaryrefslogtreecommitdiff
path: root/doc/context/presentations/context/2016/context-2016-luatex.tex
blob: 348c2ea5fb6f0bf09ca2902b8a9283b4eba0b64c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
\usemodule[present-luatex]

\startdocument
  [title={\luaTeX},
   subtitle={Version 1.00},
   location={ConTeXt meeting \emdash\ September 2016},
   mp:title={luatex},
   mp:subtitle={1.00\space\endash\space2016}]

\startstandardmakeup

After ten years of stepwise development and experimenting we release version 1.00
of \LuaTeX\ during the 10\high{th} \ConTeXt\ meeting in the Netherlands, September
2016.

The interface is now rather stable and will not change significantly which means
that one can write stable packages.

So, it's time for a bit reflection as well as time to tell what we will be doing
next.

\stopstandardmakeup

\startstandardmakeup

Around 2005, after we talked a bit about it, Hartmut added the \Lua\ scripting
language to \pdfTeX\ as an experiment.

This add|-|on was inspired by the \Lua\ extension to the Scite editor that I
(still) use.

\stopstandardmakeup

\startstandardmakeup

One could query counter registers and box dimensions and print strings to the
\TeX\ input buffer.

The Oriental \TeX\ project then made it possible to go forward and come up with a
complete interface.

For this, Taco converted the code base from Pascal to C, an impressive effort.

\stopstandardmakeup

\startstandardmakeup

We spent more than a year intensively discussing, testing and implementing
the interface between \TeX\ and \Lua.

In successive years we polished things and extended bits and pieces.

The last few years we cleaned up, filled in gaps and reached the point where we
were more of less satisfied.

\stopstandardmakeup

\startstandardmakeup

The core is still traditional \TeX, but extended with \pdfTeX\ protrusion and
expansion (reworked) and directional features from Aleph (cleaned up).

\stopstandardmakeup

\startstandardmakeup

The font subsystem accept now wide fonts.

The hyphenation machinery can use runtime loaded (and extended) patterns.

Hyphenation, ligaturing, kerning are separated.

Most steps in processing node lists can be intercepted using callbacks.

The math machinery has opentype math code paths.

\stopstandardmakeup

\startstandardmakeup

All in- and output can be controlled and intercepted.

The backend code has been separated better.

You can write (simple) parsers.

Nodes can be accessed and manipulated.

Images and reuseable boxes are now native.

\stopstandardmakeup

\startstandardmakeup

The project is driven by \ConTeXt\ users and \ConTeXt\ development.

Right from the start \ConTeXt\ supported \LuaTeX.

This means that most mechanisms have been tested in production.

Raw performance is less than 8 bit \pdfTeX\ but in practice and on modern
machines \LuaTeX\ behaves well.

\stopstandardmakeup

\startstandardmakeup

We will continue development, but functionality will stay stable within versions.
Of course bugs will be fixed.

The code will be further streamlined and documented. We deliberately postponed some
cleanup till after version 1.00.

Of course the manual will be improved over time.

\stopstandardmakeup

\startstandardmakeup[bottom=,top=]

    \vfil

    \ssbf

    Hans Hagen     \par
    Hartmut Henkel \par
    Taco Hoekwater \par
    Luigi Scarso   \par

    \vfil \vfil \vfil

    \txx

    many thanks to all the\break
    early adopters

    \vfil

\stopstandardmakeup

% ideas

\startstandardmakeup

    \midaligned{Some ideas (1)}

    So far we managed to avoid extensions beyond those needed as part of the opening
    up.

    We stick close to Don Knuths concepts so that existing documentation still
    conceptualy applies. We keep our promise of not adding to the core.

    We might open up (make configureable) some of the still hard coded properties.

\stopstandardmakeup

\startstandardmakeup

    \midaligned{Some ideas (2)}

    Some node lists can use a bit of (non critical) cleanup, for instance passive
    nodes, local par nodes, and other left|-|overs. Maybe we should add missing
    left|/|right skips.

\stopstandardmakeup

\startstandardmakeup

    \midaligned{Some ideas (3)}

    We can optimize some callback resolution (more direct) so that we can gain a little
    performance.

\stopstandardmakeup

\startstandardmakeup

    \midaligned{Some ideas (4)}

    Inheritance of attributes needs checking and maybe we need to permits some more
    explicit settings.

\stopstandardmakeup

\startstandardmakeup

    \midaligned{Some ideas (5)}

    Bring some more code to the api file. Use the global PDF and \Lua\ states
    consistently. Some macros can probably go away.

\stopstandardmakeup

\startstandardmakeup

    \midaligned{Some ideas (6)}

    Minimize return values of \Lua\ functions; only return nil when we expect
    multiple calls in in one line.

\stopstandardmakeup

\startstandardmakeup

    \midaligned{Some ideas (7)}

    Figure out a way to deal with literals in virtual characters (relates to font
    switching in the result).

\stopstandardmakeup

\startstandardmakeup

    \midaligned{Some ideas (8)}

    Maybe reorganize some code so that documentation is easier. See if we can stick
    close to what Don Knuth documents.

\stopstandardmakeup

\startstandardmakeup

    \midaligned{Some ideas (9)}

    Cleanup and isolate the backend a bit more. Maybe add a bit more options to
    delegate to \Lua. Get rid of some historic PDF artifacts.

\stopstandardmakeup

\startstandardmakeup

    \midaligned{Some ideas (10)}

    It is tempting to think of a (lean and mean) \LuaTeX\ variant for \ConTeXt.

    We will not touch stable unless it concerns bug fixes, but we will expose
    \ConTeXt\ users to the experimental branch (as we do now).

    So \unknown\ be prepared.

\stopstandardmakeup

\stopdocument