In September 2012 the LuaTeX SwigLib project is initiated. End January 2013 we had the commitment of the following usergroups for funding: TUG, NTG, CSTUG, GUST and Dante. This means that the project could make a start in February 2013. This project has the following objectives:
- Setting up an infrastructure for building libraries for LuaTeX using Swig so that we stay close to the original api's.
- Investigate libraries of different complexity. We also explore the impact of dependencies on other libraries.
- Provide a set of common helpers that can be integrated in libraries.
- Provide documentation on how to use this infrastructure and how to roll out your own.
- Come up with a naming scheme that makes it possible to avoid clashes between similar libraries. In principle a user or macro package should be able to generate libraries independently of others and use these in a regular TeX setup.
- Make a couple of working examples of libraries, available for all major platforms.
The project wil use the ConTeXt (garden) infrastructure that is already in place. That way we can support many platforms and provide updates easily. We hope to finish the work mid 2014, in time for integration in TeXLive.
This (coding in) this project will be done by Luigi Scarso. The ConTeXt community already has a system set up for compiling intermediate versions of LuaTeX for many platforms so we will use that infrastructure. In due time we can use the module repository for distributing components from which they can be moved into TeX Live and other distributions. Hans will do testing and explore possibilities with Luigi and Taco will help out with specific interfacing issues.
As a prelude to this project we moved on to Lua 5.2. At the same time we started providing a special version that uses the LuaJIT interpreter (its main benefit for LuaTeX is that it has a faster virtual machine). In addition to official LuaTeX, the project will try to serve this (not entirely 5.2 compliant) variant as well.
The project will not produce Lua code, although for sure ConTeXt will ship with some examples. Generic additional Lua code is not needed as we stick to the original api and only deal with glueing to LuaTeX. This lessens dependencies and makes it possible for macro packages to come up with their own solutions (i.e. no interference).
The choice for the swig approach was made after we did some extensive testing with several approaches (in fact it was triggered by problems with some existing libraries). Luigi already has presented some past experiences with the matter at user group meetings and published some articles in user group magazines and conference proceedings. Luigi and Hans will present the project and use cases at TeX related conferences and meetings. The first beta release will be end of 2013 around the ConTeXt conference. The first release will be around EuroTeX 2014.
We have some ideas about follow-ups but these will be presented in due time.