Thomas Morley <thomasmorle...@gmail.com> writes:

> Am Mo., 12. Nov. 2018 um 12:22 Uhr schrieb David Kastrup <d...@gnu.org>:
>>
>> Well, it's basically that macros run less synchronously with the rest
>> in Guilev2 compared to Guilev1.  That's because they are no longer an
>> entity of their own but rather a variation on syntax transforms.
>> define-markup-command compiles information the markup macro needs for
>> working, but the actual commands recording this information into data
>> structures are only executed at execution rather than macro expansion
>> time.  The problem with macro expansion time stuff is that it's very
>> fuzzy what parts of the execution environment may be present and what
>> not.  For example, closures are quite likely not to work at expansion
>> time.
>>
>> I am not sure that it's even possible to let the markup macro
>> postpone things in a reasonable manner without obliterating all
>> advantages of using a macro in the first place.
>
> Many thanks for the detailed explanations.
> I'm afraid it will take some time for me to understand.

Once you do, you can explain it to me.  The above is basically
handwaving except that I have some experience where your hands will get
hurt if you choose to wave them there.  So it's constrained handwaving.

-- 
David Kastrup

_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to