summaryrefslogtreecommitdiff
path: root/source/luametatex/source/license.txt
blob: f98c9881913caf3dee6dfcb48aa9851ff0cb3058 (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
------------------------------------------------------------------------------------------
PREAMBLE
------------------------------------------------------------------------------------------

The LuaMetaTeX program is a light weight variant of LuaTeX. This program finds its origin
in parts of TeX (the original program, eTeX (some extensions), pdfTeX (more extensions)
Aleph (based on Omega, directions) and of course LuaTeX (lots of things).

So, basically we follow up on LuaTeX which itself is a follow up on TeX, eTeX, pdfTeX and
Aleph. The actual starting point (in 2005) was a special Lua enhanced version of pdfTeX
by Hartmut Henkel that we experimented with and triggered a follow up. However, the code
base is no longer Pascal (which then gets converted to C) but regular C code instead. That
conversion was done by Taco Hoekwater as part of the Oriental TeX project.

There are many articles (presentations and documents) that discuss the development history.
These articles and documents describing the projects shed more light on what functionality
showed up when and why. As these projects closely relate to ConTeXt development you can
find those documents in the ConTeXt distribution.

After this conversion quite some implementation details changed over the decade that
followed: memory management was adapted, string handling became dynamic, managing the
table of equivalents was tuned to the mix, callbacks were added. The opening up resulted in
some adaption of the internals too. Font handling changed, math support for opentype math
has been introduced. Hyphenation handling, ligature building and kerning are clearly
separated and language support has been rewritten from scratch. In addition to Lua, the
TeX engine is also complemented by the MetaPost library. Luigi Scarso added support for
LuaJIT and ffi and over time makes sure that the code works out okay in the regular
TeXLive build too.

In 2018-2019 the conversion from LuaTeX to LuaMetaTeX was done by Hans Hagen as part of
an attempt to simplify the build and get rid of code that might have been useful when we
started but no longer makes sense. Because the LuaTeX interfaces had to stabelize, this
follow up also provides us a new testbed. The LuaMetaTeX source code is distributed as
part of the ConTeXt distribution which is also used for testing and development. Most
tests are done by those involved in ConTeXt development, so issues should be reported to
the mailing lists related to this macro package.

In the process the code base has been adapted substantially, although the decade of
LuaTeX development already prepared for that. This also leads occasionally instable
setups. We're grateful to ConTeXt community for their patience in testing these continuous
developments.

The license below is from LuaTeX and also applies to LuaMetaTeX. Although other team
members contribute(d) to the code, we stick to this description. The --credits option
provides more information.

------------------------------------------------------------------------------------------
EXCUSE
------------------------------------------------------------------------------------------

Although some code comes from pdfTeX and Aleph, the majority comes from good old TeX and
eTeX or is completely new. Original TeX is a well documented program written in WEB and
those building upon it have added comments. In LuaMetaTeX we use plain C files but the
comments are still mostly present. When you read them you really need to keep in mind that
some refer to good old TeX! The nice comments come from Don Knuth, the bad and fuzzy ones
originate at us. We appologize to Don for this.

------------------------------------------------------------------------------------------
CREDITS
------------------------------------------------------------------------------------------

LuaMetaTeX builds upon the code from LuaTeX which comes from:

    tex        : Donald Knuth
    etex       : Peter Breitenlohner, Phil Taylor and friends

The expansion and protrusion code is derived from:

    pdftex     : Han The Thanh and friends

Some of the bidirectional text flow model is taken from:

    omega      : John Plaice and Yannis Haralambous
    aleph      : Giuseppe Bilotta

Graphic support is provided by:

    metapost   : John Hobby, Taco Hoekwater, Luigi Scarso, Hans Hagen and friends

All this is opened up with:

    lua        : Roberto Ierusalimschy, Waldemar Celes and Luiz Henrique de Figueiredo
    lpeg       : Roberto Ierusalimschy

A few libraries are embedded, of which we mention:

    avl        : Richard McGraw (adapted)
    decnumber  : Mike Cowlishaw (IBM)
    libcerf    : Joachim Wuttke (adapted to msvc)
    md5        : Peter Deutsch (with partial code from pplib libraries)
    pplib      : Paweł Jackowski (with partial code from libraries)
    sha2       : Aaron D. Gifford (with partial code from pplib libraries)
    socket     : Diego Nehab (partial and adapted)
  # zlib       : Jean-loup Gailly and Mark Adler
    miniz      : Rich Geldreich etc.
    mimalloc   : Daan Leijen (Microsoft Research)

The code base contains more names and references. Some libraries are partially adapted. We
use an adapted version of the lfs from the Kepler Project. Also, MetaPost used decNumber
for decimal number mode.

Depending on demand a few optional libraries can be used, for instance curl, imagemagick,
lz4, lzo, mujs, mysql, sqlite and zint but there are no dependencies and only very limited
interfaces are provided (ConTeXt provides \LUA\ layers on top).

------------------------------------------------------------------------------------------
TEAM
------------------------------------------------------------------------------------------

LuaTeX     : Hans Hagen, Hartmut Henkel, Taco Hoekwater, Luigi Scarso
LuaMetaTeX : Hans Hagen, Wolfgang Schuster, Mojca Miklavec, Alan Braslau

------------------------------------------------------------------------------------------
MAIN LICENSE (consider it part of each file that refers to this file)
------------------------------------------------------------------------------------------

Copyright Taco Hoekwater & Hans Hagen & Wolfgang Schuster

This file is part of LuaMetaTeX.

LuaMetaTeX is free software; you can redistribute it and/or modify it under the terms of
the GNU General Public License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.

LuaMetaTeX is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Lesser General Public License for more details.

You could have received a copy of the GNU General Public License along with LuaMetaTeX; if
not, see <http://www.gnu.org/licenses/>.

------------------------------------------------------------------------------------------
REMARK
------------------------------------------------------------------------------------------

The Lua(Meta)TeX team can always decide to relicense to a variant licence in the future,
but please don't start one of these religious licence discussions with us. We like what
we're doing, we permits others to use it, and that is the bottomline.

------------------------------------------------------------------------------------------
OTHER LICENSES
------------------------------------------------------------------------------------------

The files taken from elsewhere have their own license information at the top of the files
or in a file their path. It's a mixed bag but basically all permit usage and extensions.

------------------------------------------------------------------------------------------
BUILD | FARM | REPOSITORIES
------------------------------------------------------------------------------------------

Mojca Miklavec, Hans Hagen, Alan Braslau

------------------------------------------------------------------------------------------
CONTEXT MKII | MKIV | LMTX
------------------------------------------------------------------------------------------

Hans Hagen, Wolfgang Schuster, etc

------------------------------------------------------------------------------------------
WEBSITE
------------------------------------------------------------------------------------------

http://www.luatex.org
http://contextgarden.net
http://www.pragma-ade.com / http://www.pragma-nl.com

------------------------------------------------------------------------------------------
SUPPORT
------------------------------------------------------------------------------------------

http://www.ntg.nl/mailman/listinfo/ntg-context
http://www.ntg.nl/mailman/listinfo/dev-context

------------------------------------------------------------------------------------------
MORE LINKS
------------------------------------------------------------------------------------------

http://www.ntg.nl
http://www.tug.org

------------------------------------------------------------------------------------------