From: Elena <egarrulo@gmail.com>
To: help-gnu-emacs@gnu.org
Subject: Re: Lexical binding and macros.
Date: Wed, 15 Dec 2010 09:54:49 -0800 (PST) [thread overview]
Message-ID: <c4a5a676-d2f1-424b-8719-576b5033b1c8@v17g2000vbo.googlegroups.com> (raw)
In-Reply-To: 87vd2v8107.fsf@lola.goethe.zz
On Dec 15, 5:16 pm, David Kastrup <d...@gnu.org> wrote:
> Stefan Monnier <monn...@iro.umontreal.ca> writes:
> >> Do they still leak memory? Fromhttp://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.
Macros expansion can change if such macros depend on some other macros
which have been redefined after last expansion.
next prev parent reply other threads:[~2010-12-15 17:54 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <mailman.40.1292017369.4804.help-gnu-emacs@gnu.org>
2010-12-12 4:10 ` Lexical binding and macros Barry Margolin
2010-12-12 17:14 ` LanX
2010-12-12 17:23 ` Pascal J. Bourguignon
2010-12-15 4:24 ` Stefan Monnier
2010-12-15 9:15 ` Elena
2010-12-15 12:38 ` Pascal J. Bourguignon
2010-12-15 15:40 ` Stefan Monnier
2010-12-15 16:16 ` David Kastrup
2010-12-15 17:37 ` Pascal J. Bourguignon
2010-12-15 17:54 ` Elena [this message]
2010-12-16 21:59 ` Stefan Monnier
2010-12-10 21:42 Alin Soare
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c4a5a676-d2f1-424b-8719-576b5033b1c8@v17g2000vbo.googlegroups.com \
--to=egarrulo@gmail.com \
--cc=help-gnu-emacs@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.