![](https://secure.gravatar.com/avatar/565476157eb3895a9c928ffce26d988d.jpg?s=120&d=mm&r=g)
Hi, I have just uploaded the archives for a new luatex release, 0.46.0. There are two important reason for this release: * It fixes an xform bug that is quite serious as it produces invalid pdf files (see below) * There is now experimental support for loading external .dll/.so files for lua extension modules. Copied from a message I sent to the dev-luatex list a few days ago:
I have committed an experimental patch that enables dynamic loading for external compiled libraries unless --safer is given on the command-line.
It is experimental because:
* it assumes that all architectures except windows will be happy with using dlopen (windows has its own code which does not need compile- time support, but you have to have an installed lua51.dll from e.g. http://luabinaries.luaforge.net ).
* I made only minimal changes to kpathsea.
* there may be lua libraries out there that fail horribly.
As with pure lua require() files, luatex will only use kpathsea if the library is initialized already.
kpathsea changes in detail:
I added the kpse_clua_format identifier that searches for files with extension .dll and .so. The texmf.cnf setting for this variable is CLUAINPUTS, and by default it has this value:
CLUAINPUTS=.:$SELFAUTOLOC/lib/{$progname,$engine,}/lua//
This is the best I could do on short notice: the architecture has to be in the path somewhere, and the fastest way to do that is to search below the binary directory only.
One level up (lib parallel to bin) would have been nicer, as the context minimals have arch and bin swapped (texmf-linux/bin as opposed to bin/i386-linux) but that would not have worked in texlive.
If you know how to compile dynamic libraries on your platform, a good library to play with is Lua BitOp, http://bitop.luajit.org/ (single C source file and comes with a nice test lua script). And here is the normal list of features and bugfixes in 0.46.0 -------------------------------------------------------------- New features: * The build.sh script now has better support for new MacOSX-es (patch from Mojca). * Luatex now has experimental support for dynamic loading of external compiled lua libraries. Building luatex and loading external .so/.dll files is reported to work on Windows, linux and osx, other platforms are still unknown. * pdf.obj{type="stream"} no longer converts its argument to and from a tokenlist. This allows the use of binary data in the "string" argument. Such data does still have to hidden from the normal file parser by putting the code in a dofile() or by using string.char(), though. Bug fixes: * Luatex 0.45.0 was not able to find truetype nor opentype fonts if there were no callbacks defined (patch from Pawel). * 0.45.0 printed the user input instead of the full pathname for \input-ed tex files. * The TFM reader now rejects fonts with tfm names that are longer than 255 characters because such font names cannot be stored in a DVI file. * The combination of \immediate\pdfxform followed by a later \pdfrefxform could cause broken pdf output files because the box used for the form could have been freed and even reused already at that moment in time, sometimes resulting in an invalid transformation matrix. * The placement of super- and subscripts for displaystyle \int's in CambriaMath is now better than before. It still needs a tweak to the metrics though: in the current version, the italic correction has to be substracted from the width of the integral sign to get correct placement (context mkiv does this). to be continued ... The archives can be downloaded from supelec as usual: http://foundry.supelec.fr/gf/project/luatex/ You could also check out the sources via anonymous svn: svn co http://foundry.supelec.fr/svn/luatex/tags/beta-0.46.0 Bugs and feature requests can be added to the issue tracker at http://tracker.luatex.org Have fun, Taco