help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Lexical binding and macros.


From: David Kastrup
Subject: Re: Lexical binding and macros.
Date: Wed, 15 Dec 2010 17:16:40 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> Do they still leak memory?  From http://c2.com/cgi/wiki?EmacsLisp :
>
>> "Note that variables bound with lexical-let are never released, even
>> if they are never used. Try
>
>>  (loop for i from 1 to 100000 collect (lexical-let ((x i)) '()))
>
>> and watch it eat memory. So making infinity (ZeroOneInfinity) lexical
>> variables is out of the question except for very small values of
>> infinity."
>
> Additionally to what Pascal already explained, I'll add that,
> lexical-let, like `loop' are relatively heavy macros, so you definitely
> don't want to run them interpreted (where the macro is re-expanded each
> time).

Why would they be reexpanded each time?  They are macros.  Their
expansion is done once and merely evalled each time.

Or do I misunderstand something here?

-- 
David Kastrup


reply via email to

[Prev in Thread] Current Thread [Next in Thread]