From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Elena Newsgroups: gmane.emacs.help Subject: Re: Lexical binding and macros. Date: Wed, 15 Dec 2010 09:54:49 -0800 (PST) Organization: http://groups.google.com Message-ID: References: <87r5dmkir6.fsf@kuiper.lan.informatimago.com> <96134923-1314-4675-bd77-004945a7159e@y3g2000vbm.googlegroups.com> <87vd2v8107.fsf@lola.goethe.zz> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1292438613 7668 80.91.229.12 (15 Dec 2010 18:43:33 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 15 Dec 2010 18:43:33 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed Dec 15 19:43:28 2010 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1PSwJk-0004Gk-9y for geh-help-gnu-emacs@m.gmane.org; Wed, 15 Dec 2010 19:43:26 +0100 Original-Received: from localhost ([127.0.0.1]:53731 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PSwHX-0003CT-9B for geh-help-gnu-emacs@m.gmane.org; Wed, 15 Dec 2010 13:40:55 -0500 Original-Path: usenet.stanford.edu!postnews.google.com!v17g2000vbo.googlegroups.com!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 23 Original-NNTP-Posting-Host: 94.36.112.184 Original-X-Trace: posting.google.com 1292435689 11137 127.0.0.1 (15 Dec 2010 17:54:49 GMT) Original-X-Complaints-To: groups-abuse@google.com Original-NNTP-Posting-Date: Wed, 15 Dec 2010 17:54:49 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: v17g2000vbo.googlegroups.com; posting-host=94.36.112.184; posting-account=AFCLjAoAAABJAOf_HjgEEEi3ty-lG5m2 User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13,gzip(gfe) Original-Xref: usenet.stanford.edu gnu.emacs.help:183321 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:77568 Archived-At: On Dec 15, 5:16=A0pm, David Kastrup wrote: > Stefan Monnier writes: > >> Do they still leak memory? =A0Fromhttp://c2.com/cgi/wiki?EmacsLisp: > > >> "Note that variables bound with lexical-let are never released, even > >> if they are never used. Try > > >> =A0(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? =A0They are macros. =A0Their > 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.