Hi, I uploaded a new version of lmtx. Apart from some small fixes, the configuration file is hopefully okay too. I'm sure MF will check it. However, the biggest change is hidden. In traditional tex, inserts (used for footnotes) are implemented using a quadruple of registers. In context these come from the range 132-254 which is not used by normal allocations. The number is basically a sort of index. However, this box/dimen/count/skip memory model doesn't work well for (possible) extensions nor does the wrapped final (per page) box fit into the more extended regular box model (not that anyone will notice or abuse that, it's just that some features of boxes don't make sense in the perspective of inserts). Inserts are somewhat complex (and interwoven) and are also somewhat fuzzy when one wants to do checking when making progress on a page. We already deal with that in context in a reasonable way but I get the feeling that we can do better. This and the above are reasons to come up with a variant memory model that permits playing with additional features more easily. The existing storage model is stil there (after all it's tex) but for those willing to check the alternative, in page-ins.mkxl one can uncomment % \insertmode\plustwo and remake the format. I rejected a mixed mode model because it makes the code ugly. Related mem grows on demand as with other mechanisms so there is no extra overhead involved. As a consequence I had to abstract some of the insert interface in context a bit more (because we use accessors instead of boxes) and hopefully I didn't forget one. We'll see. Once I'm confident with the new approach we'll switch to that (low level) interface model and can progress. Because users don't use inserts directly themselves not much harm can be done. 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 -----------------------------------------------------------------
On 5/25/21 6:20 PM, Hans Hagen wrote:
[...] but for those willing to check the alternative, in page-ins.mkxl one can uncomment
% \insertmode\plustwo
Many thanks for the new upload, Hans. I’m extremely interested in testing this. How can we enable this feature in a permanent way? I mean, how can we avoid that an update disables it? Many thanks for your help, Pablo -- http://www.ousia.tk
On 5/26/2021 7:17 PM, Pablo Rodriguez wrote:
On 5/25/21 6:20 PM, Hans Hagen wrote:
[...] but for those willing to check the alternative, in page-ins.mkxl one can uncomment
% \insertmode\plustwo
Many thanks for the new upload, Hans.
I’m extremely interested in testing this.
How can we enable this feature in a permanent way?
I mean, how can we avoid that an update disables it? Not ... because we define some inserts (e.g for footnotes) we need to decide what storage model to choose ... technically we can use the runtime 'experiment' feature but i expect to switch rather soon anyway.
When users who test it encounter no problems it's okay because the core mechanisms are the same ... read: we still have inserts as usual but a variant engine-metadata storage model permits future - more robust and predictable - extensions; it was one of the more long term pending things to do which i decided to do now. fyi: As we transition to frozen mkiv i'm also removing some hybrid left-overs in lmtx (for instance, years ago the lmtx backend actually started out as an option in mkiv so that i could test the idea, so that resulted in some nasty code in order to deal with both cases ... but at some point I decided that mkiv should not go that dual route. So, every time when I run into some "it's time to move on and clean this up" moment I also check my long term agenda and this insert stuff was one of those items: it permits me to remove some old obsolete code still present in lmtx (that I admit I often already forgot about). 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 -----------------------------------------------------------------
Il 25/05/21 18:20, Hans Hagen ha scritto:
Inserts are somewhat complex (and interwoven) and are also somewhat fuzzy when one wants to do checking when making progress on a page. We already deal with that in context in a reasonable way but I get the feeling that we can do better. This and the above are reasons to come up with a variant memory model that permits playing with additional features more easily. The existing storage model is stil there (after all it's tex) but for those willing to check the alternative, in page-ins.mkxl one can uncomment
% \insertmode\plustwo
and remake the format.
I tested it with 2 volumes (632 and 936 pages). Both have 2 kinds of footnotes; in the first there are also footnotes inside footnotes. diffpdf says the resulting PDFs are identical to the ones obtained with that line commented out. So, regarding those two samples, the change has no effect in the output. Massi
On 5/27/2021 12:17 PM, mf wrote:
Il 25/05/21 18:20, Hans Hagen ha scritto:
Inserts are somewhat complex (and interwoven) and are also somewhat fuzzy when one wants to do checking when making progress on a page. We already deal with that in context in a reasonable way but I get the feeling that we can do better. This and the above are reasons to come up with a variant memory model that permits playing with additional features more easily. The existing storage model is stil there (after all it's tex) but for those willing to check the alternative, in page-ins.mkxl one can uncomment
% \insertmode\plustwo
and remake the format.
I tested it with 2 volumes (632 and 936 pages). Both have 2 kinds of footnotes; in the first there are also footnotes inside footnotes.
diffpdf says the resulting PDFs are identical to the ones obtained with that line commented out.
So, regarding those two samples, the change has no effect in the output. That's good news!
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 -----------------------------------------------------------------
participants (3)
-
Hans Hagen
-
mf
-
Pablo Rodriguez