summaryrefslogtreecommitdiff
path: root/doc/context/sources/general/manuals/ontarget/ontarget-introduction.tex
diff options
context:
space:
mode:
Diffstat (limited to 'doc/context/sources/general/manuals/ontarget/ontarget-introduction.tex')
-rw-r--r--doc/context/sources/general/manuals/ontarget/ontarget-introduction.tex104
1 files changed, 104 insertions, 0 deletions
diff --git a/doc/context/sources/general/manuals/ontarget/ontarget-introduction.tex b/doc/context/sources/general/manuals/ontarget/ontarget-introduction.tex
new file mode 100644
index 000000000..f7ac0a19d
--- /dev/null
+++ b/doc/context/sources/general/manuals/ontarget/ontarget-introduction.tex
@@ -0,0 +1,104 @@
+% language=us runpath=texruns:manuals/ontarget
+
+\startcomponent ontarget-introduction
+
+\environment ontarget-style
+
+\startchapter[title={Introduction}]
+
+This is the seventh wrapup of the \LUATEX\ and \LUAMETATEX\ development cycle. It
+is dedicated to all those users who kept up with developments and are always
+willing to test the new features. Without them a project like this would not be
+possible.
+
+At the time this introduction is written the \LUAMETATEX\ code base is rather
+stable and quite a bit of the \MKIV\ code base has been adapted to new situation.
+But, as usual, there are always new possibilities to explore, so I expect that
+this document will grow over time as did the others. I'm not going to repeat all
+that has been done because that's what the previous episodes are about.
+
+As the title suggest, we're still on target. When the \LUAMETATEX\ project
+started there actually was no deadline formulated so in fact we're always on
+target. The core components \TEX, \METAPOST, and \LUA\ are all long term efforts
+so we're in no hurry at all. However, this is the year that a fast pace will
+become a slow pace with respect to the \LUAMETATEX\ code base. There are still
+some things on the agenda but in principle the goals are reached. One problem in
+today's code development is that useability and quality seems to relate to the
+amount of changes in code. No update can mean old, unusable and uninteresting.
+It's probably why some sources get this silly yearly copyright year update.
+However, the update cycle of good old \TEX\ has an decade interval by now while
+it is still a pretty useable program. It would be nice to end up in such a long
+term cycle with \LUAMETATEX: bug fixes only.
+
+Although \CONTEXT\ has always adapted early to new developments (color, graphics,
+\PDF, \METAPOST, \ETEX, \PDFTEX, \LUATEX, \UTF, fonts) the effects on the
+\CONTEXT\ code base are mostly hidden for users. There have been some changes
+between \MKII\ and \MKIV, simply because there has been a shift from specific
+eight bit encodings to \UTF\ and \TYPEONE\ to \OPENTYPE\ fonts. Both had an
+impact on important subsystems: input encodings, font definitions and features,
+language and script support. On other subsystems the impact was hardly
+noticeable, like for instance backend related features (these have always been
+kind of abstract). That doesn't mean that these haven't changed deep down, they
+definitely have. Some mechanisms became better in \MKIV, simply because less
+hackery was needed. My experience is that when users see that it gets better or
+easier, they are also willing to adapt the few lines in their document source
+that benefit from it. Of course the impact on the \METAPOST\ integration in
+\CONTEXT\ had a real large impact, especially in terms of performance.
+
+The upgrade to \LMTX, the version of \CONTEXT\ for \LUAMETATEX, is even less
+visible although already some new mechanisms showed up. This time a couple of
+engine specific features have been improved and made more flexible. In fact, the
+whole code base of the engine has been overhauled. This happened stepwise because
+we had to make sure all things kept working. As a first step code was made
+independent of the compilation infrastructure and the dependencies, other than a
+very few small ones, have been removed. The result is a rather lean and mean
+setup, even when we consider what has been added at the primitive level and
+traditional subsystems. A benefit is that in the meantime the \LUAMETATEX\ \LMTX\
+combination outperforms \LUATEX\ with \MKIV, something that was not ensured when
+the built|-|in \PDF\ backend was removed and delegated to \LUA. By binding
+development closely to \CONTEXT\ we also hope that the code base stays clean of
+arbitrary extensions.
+
+Because in the end, \TEX\ is also a programming language, there have been
+extensions that make programming easier. There is already a stable middle layer
+of auxiliary macros in \CONTEXT\ that help the user who likes to program but
+doesn't like real low level primitives and dirty tricks, but by extending the
+primitive repertoire a bit users can now stay closer to the original \TEX\
+concepts. Adding more and more layers of indirectness makes no sense if we can
+improve the bottom programming layer. It also makes coding a bit more natural
+(the \TEX\ look), apart from offering performance benefits. This is where you can
+see differences between the \MKIV\ and \LMTX\ code base which for that reason is
+now nearly split completely. The \METAPOST\ subsystem has been extended with
+proper scanners so that we can enhance the interfaces in a natural way and as a
+result we also have an upgraded code base there. We also moved to \LUA 5.4 and
+will keep up as long as compatibility is no issue. Some \LUA\ code is likely to
+remain common between \MKIV\ and \LMTX, for instance font handling and helpers
+but we'll see where that ends.
+
+The \LUAMETATEX\ engine provides control over most internals and there are all
+kind of new interesting features. Decades of \CONTEXT\ development are behind
+that. Also, in the days that there were discussions about extending \TEX,
+\CONTEXT\ was not that much of influence and on the road to and from user group
+meetings, Taco and I often discussed what we'd like to see added (and some was
+actually implemented in \type {eetex} but that only lived on our machines. One
+can consider \LUATEX\ to be a follow up on that, and \LUAMETATEX\ in turn follows
+up on that project, which we both liked doing a lot. In some way \LUATEX\ lowered
+the boundary for implementing some of the more intrusive extensions in
+\LUAMETATEX\ and the follow up on \MPLIB. And once you start along that road
+small steps become large steps and one can as well be try to be as complete as
+possible. We've come a long way but eventually arrived at the destination.
+Personally I think we got there by not being in a hurry.
+
+But even targets that are reached can eventually move,
+
+\blank[2*big]
+
+\startlines
+Hans Hagen
+Hasselt NL
+August 2021\high{++}
+\stoplines
+
+\stopchapter
+
+\stopcomponent