On 1/14/2025 6:50 PM, Henning Hraban Ramm wrote:
Am 11.01.25 um 12:30 schrieb Hans Hagen via ntg-context:
Sure.
I’m proud to have found several features that you forgot about ;)

ah, so you now make a nice certificate that you can put behind you when we chat

Will do ;)
Do you also give out cheques? ;)

we might if we got them

Back to macros (I read lowlevel-macros, at least tried to…):

While I liked \define, it looks like it just doesn’t make sense anymore if I need (\tolerant)\def for anything advanced anyway?

\starttexdefinition

supports this

You stress how costly named macros are – then we should forget about MkLX mode?

i meant 'if supported by the engine' but mklx are only named when you define them adnm internalized as #1 ...

Did I understand correctly, that bracketed = optional parameters is just a convention, i.e. only the handling of arguments makes them optional, not their definition/fencing?

indeed, you could also do

\tolerant\def\foo(#1){...}

With \tolerant, we can not only forget about the last dodos (and even single dos), but also about \dosingleargument & friends, right?
Are there cases where the MkIV way still makes sense with LMTX?

only a few places (where we were too lazy to redo it) but eventually all will use the modern way ... if you see one and are annoyed you can tell me (HH & WS)

When does it make sense to define macros in Lua (interfaces.implement)?
Obviously, if I need calculations or I/O operations that are easier to do in Lua. Are there disadvantages of Lua-defined vs. TeX-defined  macros?

it depends but i doubt if you will notice (often the performance hits are not where you think they are so one can occasionaly run into curious assumptions)

timing tex is kind of tricky because in a loop that does simple things cpu caching speeds up things contrary to doing things all over memory and code; anyway one avoids some tokenization when used right

if one noticed a bottleneck we can look into but as we don't get complaints i guess performance is ok

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 / 
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
___________________________________________________________________________________

Reply via email to