Hi,

With luametatex becoming more mature, it's time to get rid of some old code. For instance, we have lmt files that assume 5.4, but regular lua files should work for luajittex (5.2) and luatex (5.3). Most noticable are the lack of bitwise operators and integer devision in luajittex, but there are more details.

Till now, part of this problem is deals with by using functions that can actually be seen as macros that can are optimized when the format is made (kind of c-ish). It's not pretty, but works and probably no one ever noticed it. That mechanism will probably stay (for the fun of it) but the less it's used for creating the format the better.

Another complication is that we use mtxrun for both running luatex and luametatex so there we need to be friendly to all three engines. But ... eventually luametatex will be the stub for also luatex and then mtxrun can become 5.4+ (the --luatex flag already works that way). An alternative is that we have mtxrun.lmt as well as mtxrun.lua but why bother.

I also need to keep in mind that there are users of the font code that expect it to work with luajittex but that can be dealt with by splitting files.

By splitting modules in lua and lmt variants we can tune for luametatex so that will happen anyway (less code, no engine specific sections, again a smaller format file, etc).

All these adaptations have no functional consequences but of course there can be temporary hickups because of some oversight.

At the engine level there is also some occasional cleanup, like replacing some left-over low level 5.2/5.3 lua api things by 5.4 but that's kind of ongoing (as lua progresses). In principle users should not notice such changes, just like probably no one noticed that we now use a different zip library (in the beginning some high speed variants were tested too but it's not that critical and I just don't want architecture dependencies that complicate a build and can influence stability). I still try to minimize the code base and dependencies, although I admit that sometimes stuff gets added (like the more efficient memory allocator). But my target max binary size of 3MB (less with link time optimization and related stripping) and fast compilation goals are still met.

Hans

-----------------------------------------------------------------
                                          Hans Hagen | PRAGMA ADE
              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
       tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to