PRAGMA Advanced Document Engineering
LuaMetaTeX project

The LUAMETATEX engine is a follow up on LUATEX and is again part of CONTEXT development. For several reasons TEX engine development is a slow paced activity. For instance, it is not driven by commercial motives so there is no pressure to come up with features that then have to stay: one can experiment, add, remove and improve. Although the core of the engine is rather stable, developments with respect to resources and expected output need to be adressed. Since the 1980's there have been several extensions like ETEX, PDFTEX, XETEX, OMEGA (ALEPH), NTS, some extensions specific for Japanese, and of course LUATEX.

The LUATEX engine has been frozen because it is used in macro packages. An engine has to behave in predictable ways because (log term) workflows depend on it and recently compiled versions in updated distributions should work with older TEX macro code, fonts, etc. This is why a follow-up has to happen independently. As a consequence, the version of CONTEXT that uses this engine is tagged LUAMETATEX, but you can consider it to be LUATEX version 2.

Development of LUAMETATEX started in 2018 and happens in small incremental steps. For that purpose we also started a follow up on MKIV called LMTX. Both are regularly updates and available for users to test. Although it is experimental it looks like many users already use it as the default version. This is possible because we have a fix-fast policy and the installation can update itself.

So, although CONTEXT is developed in a way that (apart from improvements in rendering) ensures (functional) upward compatibility, there are different versions:

The main characteristic of LUAMETATEX is that it is a lightweight engine that has no dependencies on external (runtime) libraries, that doesn't need a complex compilation ecosystem, that is portable across operating systems with only minimal adaptation to for instance the file system, that can be used on common architectures without special coding tricks, and that only uses traditional C99 code.

Once the codebase is stable it will be part of the CONTEXT distribution so that users have a self contained setup where, if needed, they can compile the system for their specific platform. It's all about long term stability. First we have to upgrade and rethink some of the CONTEXTGARDEN installation setup and related source control (which takes time).

next page