On Thu, Jan 24, 2008, Jeff Johnson wrote:
> On Jan 24, 2008, at 4:33 PM, Ralf S. Engelschall wrote:
>>
>> Ahhh... I see! Tricky, I've already seen the __policy_tree definition a
>> few times during glancing over "macros.in" but I've not recognized that
>> it actually redefines itself. Ok, for my particular 6 ultra-expensive
>> macros this is certainly an acceptable speed-up solution. Will try.
>> But for the other about 50-100 macro definitions a simple syntax like
>> ":%<name> <value>" would be good to have as it doesn't make the whole
>> stuff such hard to read...
>
> How about tweaking up %{load:...} to permit immediate
> expansion of
> %:foo %{lua:...}
> to transform to
> %{expand:%%define foo %{lua:...}}
> definition.
>
> A bit slippery because it also makes macro initialization
> order dependent, but can't be helped.
>
> Or do you need to delay the one-time expansion until
> first usage?
Exactly. I also thought about the ordering issue and came to the
conclusion that it opens a large can of worms if we do the expansion
already at definition time. The best is to really delay it until the
macro is the first time actually expanded.
> I've needed/wanted an immediate expansion within macro files
> for years, just unwilling to listen to the whiny "Incompatible!"
> hollering.
Well, with an additional syntactical tag it should be just fine as it
means that the immediate expansion has to be explicitly requested.
So, I see two tags: one which indicates that expansion should really be
performed immediately and the other indicating that the expansion should
be done once at the first expansion.
Ralf S. Engelschall
rse@engelschall.com
www.engelschall.com
Received on Fri Jan 25 08:31:10 2008