summaryrefslogtreecommitdiff
path: root/doc/context/presentations/context/2016/context-2016-luatex.tex
diff options
context:
space:
mode:
Diffstat (limited to 'doc/context/presentations/context/2016/context-2016-luatex.tex')
-rw-r--r--doc/context/presentations/context/2016/context-2016-luatex.tex242
1 files changed, 242 insertions, 0 deletions
diff --git a/doc/context/presentations/context/2016/context-2016-luatex.tex b/doc/context/presentations/context/2016/context-2016-luatex.tex
new file mode 100644
index 000000000..348c2ea5f
--- /dev/null
+++ b/doc/context/presentations/context/2016/context-2016-luatex.tex
@@ -0,0 +1,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