From fd0c4577a4b6e85ca2db664906e1a03807ce133f Mon Sep 17 00:00:00 2001
From: Hans Hagen <pragma@wxs.nl>
Date: Sun, 14 May 2017 19:58:50 +0200
Subject: 2017-05-14 19:15:00

---
 .../general/manuals/hybrid/hybrid-introduction.tex | 152 +++++++++++++++++++++
 1 file changed, 152 insertions(+)
 create mode 100644 doc/context/sources/general/manuals/hybrid/hybrid-introduction.tex

(limited to 'doc/context/sources/general/manuals/hybrid/hybrid-introduction.tex')

diff --git a/doc/context/sources/general/manuals/hybrid/hybrid-introduction.tex b/doc/context/sources/general/manuals/hybrid/hybrid-introduction.tex
new file mode 100644
index 000000000..c40544582
--- /dev/null
+++ b/doc/context/sources/general/manuals/hybrid/hybrid-introduction.tex
@@ -0,0 +1,152 @@
+% language=uk
+
+\startcomponent hybrid-languages
+
+\environment hybrid-environment
+
+\startchapter[title={Introduction}]
+
+We're halfway the development of \LUATEX\ (mid 2009) and substantial parts of
+\CONTEXT\ have been rewritten using a mixture of \LUA\ and \TEX. In another
+document, \quotation {\CONTEXT\ \MKII--\MKIV, the history of \LUATEX\
+2006--2009}, we have kept track of how both systems evolved so far\footnote
+{Parts of this have been published in usergroup magazines like the \MAPS,
+\TUGBOAT, and conference proceedings of \EUROTEX\ and \TUG.}. Here we continue
+that story which eventually will end with both systems being stable and more of
+less complete in their basic features.
+
+The title of this document needs some explanation, although the symbols on the
+cover might give a clue already. In \CONTEXT\ \MKIV, as it is now, we mix several
+languages:
+
+\startitemize[packed]
+\startitem
+    good old \TEX: here you will see \type {{}} all over the place
+\stopitem
+\startitem
+    fancy \METAPOST: there we use quite some \type {()}
+\stopitem
+\startitem
+    lean and mean \LUA: both \type{{}} and \type {()} show up a lot there
+\stopitem
+\startitem
+    unreadable but handy \XML: immediately recognizable by the use of \type {<>}
+\stopitem
+\stopitemize
+
+As we use all of them mixed, you can consider \MKIV\ to be a hybrid system and
+just as with hybrid cars, efficiency is part of the concept.
+
+% copied from chrt-xml.tex
+
+\startFLOWchart[conversion 10]
+  \startFLOWcell
+    \name       {TEX}
+    \location   {2,1}
+    \shape      {action}
+    \text       {\TEX}
+    \connection [b+l] {CONTEXT}
+  \stopFLOWcell
+  \startFLOWcell
+    \name       {XML}
+    \location   {1,2}
+    \shape      {action}
+    \text       {XML}
+    \connection [rl] {CONTEXT}
+  \stopFLOWcell
+  \startFLOWcell
+    \name       {METAPOST}
+    \location   {2,3}
+    \shape      {action}
+    \text       {\METAPOST}
+    \connection [t-l] {CONTEXT}
+  \stopFLOWcell
+  \startFLOWcell
+    \name       {CONTEXT}
+    \location   {3,2}
+    \shape      {action}
+    \text       {\ConTeXt}
+    \connection [rl] {PDF}
+    \connection [-b-t] {UTILITIES}
+    \connection [-t-b] {LUA}
+  \stopFLOWcell
+  \startFLOWcell
+    \name       {PDF}
+    \location   {4,2}
+    \shape      {action}
+    \text       {PDF}
+  \stopFLOWcell
+  \startFLOWcell
+    \name       {UTILITIES}
+    \location   {3,3}
+    \shape      {action}
+    \text       {UTILITIES}
+    \connection [+t+b] {CONTEXT}
+  \stopFLOWcell
+  \startFLOWcell
+    \name       {LUA}
+    \location   {3,1}
+    \shape      {action}
+    \text       {LUA}
+    \connection [+b+t] {CONTEXT}
+  \stopFLOWcell
+\stopFLOWchart
+
+\startlinecorrection[big]
+\FLOWchart[conversion 10]
+\stoplinecorrection
+
+In this graphic we've given \LUA\ a somewhat different place than the other three
+languages. First of all we have \LUA\ inside \TEX, which is kind of hidden, but
+at the same time we can use \LUA\ to provide whatever extra features we need,
+especially when we've reached the state where we can load libraries. In a similar
+fashion we have utilities (now all written in \LUA) that can manage your workflow
+or aspects of a run (the \type {mtxrun} script plays a central role in this).
+
+The mentioned history document was (and still is) a rather good testcase for
+\LUATEX\ and \MKIV. We explore some new features and load a lot of fonts, some
+really large. This document will also serve that purpose. This is one of the
+reasons why we have turned on grid snapping (and occasionally some tracing).
+
+Keeping track of the history of \LUATEX\ and \MKIV\ in a document serves several
+purposes. Of course it shows what has been done. It also serves as a reminder of
+why it was done that way. As mentioned it serves as test, both in functionality
+and performance, and as such it's always one of the first documents we run after
+a change in the code. Most of all this document serves as an extension to my
+limited memory. When I look at my source code I often can remember when and why
+it was done that way at that time. However, writing it down more explicitly helps
+me to remember more and might help users to get some insight in the developments
+and decisions made. \footnote {I read a lot and regret that I forget most of what
+I read so fast. I might as well forget what I wrote so have some patience with me
+as I repeat myself occasionally.}
+
+A couple of new features were added to \LUATEX\ in 2010 but the years 2011 and
+2012 were mostly spent on fixing issues and reaching a stable state. In parallel
+parts of \CONTEXT\ were rewritten using \LUA\ and new possibilities have been
+explored. Indeed \LUATEX\ had become pretty stable, especially because we used it
+in production. There are still a lot of things on the agenda but with \LUATEX\
+0.75 we have reached yet another milestone: integration of \LUA\ 5.2, exploration
+of \LUAJIT, and the move forward to a version of \METAPOST\ that supports doubles
+as numeric type. Luigi Scarso and I also started the SwigLib project that will
+make the use of external libraries more easy.
+
+Of course, although I wrote most of the text, this document is as much a
+reflection of what Taco Hoekwater and Hartmut Henkel come up with, but all errors
+you find here are definitely mine. Some chapters have been published in \TUGBOAT,
+the \MAPS\ and other usergroup journals. Some chapters have become manuals, like
+the one on spreadsheets. I also owe thanks to the \CONTEXT\ community and those
+active on the mailing list: it's a real pleasure to see how fast new features are
+picked up and how willing to test users are when new betas show up.
+
+\blank
+
+Hans Hagen, Hasselt NL,\crlf September 2009 \emdash\ December 2012
+
+\blank
+
+\type {http://www.luatex.org}\crlf
+\type {http://www.pragma-ade.com}
+
+\stopchapter
+
+\stopcomponent
-- 
cgit v1.2.3

