[NTG-context] upcoming lmtx

Hans Hagen j.hagen at xs4all.nl
Sun Jan 3 19:50:23 CET 2021


I'm playing with future font trickery and as a consequence touching some 
low level font code. Now, of course we want to be compatible but it 
might be that I mess up something the process. At some point I'll do a 
more drastic split in the code paths (because when we use these new 
tricks we can drop/bypass some code).

Anyway, one of these days I'll do the usual update so consider this a 
warning (invitation) to make a opy of the current tree so that we can 
see where things differ: for text as well as math. There can eb subtle 
differences due to calculations and rounding in different places (just 
different concepts).

A teaser (mostly for MF whih probably runs the most demanding jobs):

The luametatex manual has 290 pages and loads quite some fonts (half a 
dozen bodyfont setups in order to demo some things with different fonts).

old mechanism: 10.8 sec, 292M lua, 99M tex, 158 instances
new mechanism:  9.5 sec, 149M lua, 35M tex,  30 instances

Where the new mechanmism uses:


(not yet in current lmtx).

The new mechanism delays scaling and does it on the fly (which means 
more work for the engine and also means that some of the context font 
and lua magic has to follow). The added code actually makes the old one 
runs a bit slower, so the gain is a bit less than indicated (say, 
between 5-10% runtime on *this* document but definitely the mem saving 

Of course in practice most documents are not that demanding but we'll 
see. (As mentioned before, it might have some positive impact on cjk 
usage). Also, if we follow this route, some code can be optimized (which 
compared to mkiv, but that is more in the small nmumbers because it is 
already optimized.)


                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl

More information about the ntg-context mailing list