Re: Recent releases of ConTeXt LMTX crash at \starttext when expl3 is loaded
Hans Hagen via ntg-context <[email protected]> Wed, 5 Aug 2026 11:21:18 +0200
| Newsgroups | gmane.comp.tex.context |
|---|---|
| Message-ID | <[email protected]> |
On 8/5/2026 10:13 AM, Max Chernoff via ntg-context wrote:
> I don't think that there's anything that can be done about (1), since
> expl3 isn't slow because it's bloated or poorly-written, but because it
> offers so much functionality. So unless expl3 loses functionality
> somehow, there's probably no way to fix this. But the expl3 load times
> in ConTeXt are _so_ much better since Joseph reimplemented the Unicode
> table stuff in Lua, so maybe there are some other similar places that
> can be sped up.
if people use something that needs expl than i suppose that the loading
overhead can be neglected .. similar to using tikz
and bloat ...all depends on ones interpretation of bloat but i don't see
it as my job to check that (last time i peeked at it was when we had to
look into some latex math/noffonts issue which then also loaded expl and
i had to get around some stuff in order to figure out the why of that
issue but i don't want to feedback on somthing that i haven't written
myself of doesn't relate to context)
> If you can't implement something in Lua, then you're not trying hard
> enough ;).
indeed
> but even I have never used it in ConTeXt before. expl3 is unbeatable for
> when you need to program things using only TeX macros, but expl3 is
even then one should wonder: why program that in tex at all
> It depends. Lua is generally faster than expl3, but not usually by that
> much:
>
> https://github.com/latex3/latex3/pull/1557#issuecomment-2226765469
>
> and expl3 is nearly always faster than if you were to implement
> something using "classic" TeX macros.
oh, benchmarks ... i don't know the code but my personal take on
benchmarking tex is:
- timing specific macros is a local thing, and as tex is very memory
intense the cpu cache keep nicely populated; timing lua is very much
influenced by the GC (and a few other things);
- suboptimal tex or lua code can have quite some impact as can have
timing itself; i would have to see the specific (small) tex vs lua
varant to see if it matters and/or scales up (not that i see it as my
task to optimize latex)
- in practice the time is often spent in different locations, i have
plenty of cases where i can/could squeeze out performance but it can
also drown in the rest of the run (it is a bit of pet project to get
Mikaels math book run under 6 seconds so we're talking accumulated .002
kind of improvements there)
- that's why whenever i read about timing and performance (also compared
to tex competitors) i can often see where that smells wrong (also
related to the task); i know quite well when we've reached the limits
and/or where there is room for some gain
- run some music in the background, keep the broweer open, and runtime
get more affected than by small improvements
- of course it can boost one ego a bit when things look faster (even in
ones perception)
> It definitely takes a bit of practice to get used to it, but I find it
> _much_ easier to read than the \cl@ss@c\@@style of writing macros that
> "plain.tex" and the 2e kernel use.
ok, so relative to @ @ @ @ stuff .. equally bad indeed
>> context and latex are just different things, the fact that there are
>> some cross-package modules is nice but not a target (as people can just
>> use the macro package that provides them what they need)
> This isn't really useful for a markdown package, but it's great for
> drawing packages since it means that you never need to recompile
> unchanged drawings.
could be, but it assumes latex is installed I guess; that said: in these
times i have to keep in mind (1) not enough memory on the market to
satisfy endless growth, (2) using older hardware as i can't afford
upgrading, (3) using less energy to process - occasional fast runs in an
editing workflow, (4) staying away from dependencies, etc., (5) being
prepared for the worst
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 : [email protected] / https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl
webpage : https://www.pragma-ade.nl / https://context.aanhet.net (mirror)
archive : https://github.com/contextgarden/context
wiki : https://wiki.contextgarden.net
___________________________________________________________________________________