summaryrefslogtreecommitdiff
path: root/doc/context/sources/general/manuals/luametatex/luametatex-introduction.tex
blob: b16b4aaf459a471fd8a422b9ec991b88b4d79733 (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
% language=uk

\environment luametatex-style

\startcomponent luametatex-introduction

\startchapter[title=Introduction]

Around 2005 we started the \LUATEX\ projects and it took about a decade to reach
a state where we could consider the experiments to have reached a stable state.
Already for a while one could use \LUATEX\ in production but some of the
interfaces evolved. In 2018 the functionality was more or less frozen. Of course
we might add some features in due time but nothing fundamental will change as we
consider version 1.10 to be reasonable feature complete. Among the reasons is
that this engine is now used outside \CONTEXT\ too which means that we cannot
simply change much without affecting other macro packages.

However, in reaching that state some decisions were delayed because they didn't
go well with a current stable version. This is why at the 2018 \CONTEXT\ meeting
those present agreed that we could move on with a follow up tagged \METATEX, a
name we already had in mind for a while, but as \LUA\ is an important component,
it got expanded to \LUAMETATEX. This follow up is a lightweight companion to
\LUATEX\ that will be maintained alongside. More about the reasons for this
follow up as well as the philosophy behind it can be found on the document(s)
describing the development. During \LUATEX\ development I kept track of what
happened in a series of documents, parts of which were published as articles in
user group journals, but all are in the \CONTEXT\ distribution. I did the same
with the development of \LUAMETATEX.

The \LUAMETATEX\ engine is, as said, a lightweight version of \LUATEX, that for
now targets \CONTEXT. We will use it for possibly drastic experiments but without
affecting \LUATEX. As we can easily adapt \CONTEXT\ to support both, no other
macro package will be harmed when (for instance) interfaces change as part of an
experiment. Of course, when we consider something to be useful, it can be ported
back to \LUATEX, but only when there are good reasons for doing so and when no
compatibility issues are involved. When considering this follow up one
consideration was that a lean and mean version with an extension mechanism is a
bit closer to original \TEX. Of course, because we also have new primitives, this
is not entirely true. The move to \LUA\ already meant that some aspects,
especially system dependent ones, no longer made sense and therefore had
consequences for the interface at the system level.

This manual currently has quite a bit of overlap with the \LUATEX\ manual but
some chapters are removed, others added and the rest has been (and will be
further) adapted. We also discusses the (main) differences. Some of the new
primitives or functions that show up in \LUAMETATEX\ might show up in \LUATEX\ at
some point, others might not, so don't take this manual as reference for \LUATEX
! For now it is an experimental engine in which we can change things at will but
with \CONTEXT\ in tandem so that this macro package will keep working.

For \CONTEXT\ users the \LUAMETATEX\ engine will become the default. Because we
can keep both \LUAMETATEX\ and \CONTEXT\ in sync. The \CONTEXT\ variant is tagged
\LMTX. The pair can be used in production, just as with \LUATEX\ and \MKIV. In
fact, most users will probably not really notice the difference. In some cases
there will be a drop in performance, due to more work being delegated to \LUA,
but on the average performance will be better, also due to some changes below the
hood of the engine.

As this follow up is closely related to \CONTEXT\ development, and because we
expect stock \LUATEX\ to be used outside the \CONTEXT\ proper, there will be no
special mailing list nor coverage (or pollution) on the \LUATEX\ related mailing
lists. We have the \CONTEXT\ mailing lists for that. In due time the source code
will be part of the regular \CONTEXT\ distribution.

% \testpage[8]

This manual sometimes refers to \LUATEX, especially when we talk of features
common to both engine, as well as to \LUAMETATEX, when it is more specific to the
follow up. A substantial amount of time went into the transition and more will go
in, so if you want to complain about \LUAMETATEX, don't bother me. Of course, if
you really need professional support with these engines (or \TEX\ in general),
you can always consider contacting the developers.

% And yes, I'm really fed up with receiving mails or seeing comments where there's
% this 'always need to be present' negative remark (nagging) about the program,
% documentation, development, support, etc. present, probably to put the writer on
% a higher stand, or maybe to compensate some other personal shortcoming ... who
% knows. This 'i need to make my stupid point' behaviour seems to come with the
% internet and it also seems to increase, but that doesn't mean that I want to deal
% with those unpleasant people for the sake of the larger "tex good". Therefore, I'm
% quite happy in the nearly always positive and motivating ConTeXt bubble. It's also
% why I (start) avoid(ing) certain mailing lists and don't really follow forums.

\blank[big]

Hans Hagen

\blank[2*big]

\starttabulate[|||]
\NC Version       \EQ \currentdate \NC \NR
\NC \LUAMETATEX   \EQ \cldcontext{LUATEXENGINE} %
                      \cldcontext{LUATEXVERSION} / %
                      \cldcontext{LUATEXFUNCTIONALITY}
                      \NC \NR
\NC \CONTEXT      \EQ MkIV \contextversion \NC \NR
\NC \LUATEX\ Team \EQ Hans Hagen, Hartmut Henkel, Taco Hoekwater, Luigi Scarso \NC \NR
\stoptabulate

\LUAMETATEX\ development is mostly done by Hans Hagen and Alan Braslau, who love
playing with the three languages involved. Testing is done by \CONTEXT\
developers and users.

\stopchapter

\stopcomponent