Hi, 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: \enableexperiments[fonts.compact] (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 remains). 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 ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------