[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Lexical binding and macros.
From: |
Stefan Monnier |
Subject: |
Re: Lexical binding and macros. |
Date: |
Wed, 15 Dec 2010 10:40:08 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) |
> 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). If you byte-compile the code above, the memory use will
be identical to what you get with
(loop for i from 1 to 100000 collect (let ((x i)) '()))
Stefan
- Lexical binding and macros., Alin Soare, 2010/12/10
- Re: Lexical binding and macros., Barry Margolin, 2010/12/12
- Re: Lexical binding and macros., LanX, 2010/12/13
- Re: Lexical binding and macros., Pascal J. Bourguignon, 2010/12/13
- Re: Lexical binding and macros., Stefan Monnier, 2010/12/15
- Re: Lexical binding and macros., Elena, 2010/12/15
- Re: Lexical binding and macros., Pascal J. Bourguignon, 2010/12/15
- Re: Lexical binding and macros.,
Stefan Monnier <=
- Re: Lexical binding and macros., David Kastrup, 2010/12/15
- Re: Lexical binding and macros., Pascal J. Bourguignon, 2010/12/15
- Re: Lexical binding and macros., Elena, 2010/12/15
- Re: Lexical binding and macros., Stefan Monnier, 2010/12/16