From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Robert Thorpe" Newsgroups: gmane.emacs.help Subject: Re: Can't compile Date: 28 Feb 2007 03:08:18 -0800 Organization: http://groups.google.com Message-ID: <1172660898.560528.237340@k78g2000cwa.googlegroups.com> References: <1172489074.509174.190590@t69g2000cwt.googlegroups.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" X-Trace: sea.gmane.org 1172662898 26922 80.91.229.12 (28 Feb 2007 11:41:38 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Wed, 28 Feb 2007 11:41:38 +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 Feb 28 12:41:31 2007 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.50) id 1HMNBa-0001ho-Aq for geh-help-gnu-emacs@m.gmane.org; Wed, 28 Feb 2007 12:41:30 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HMNBa-0000bm-LL for geh-help-gnu-emacs@m.gmane.org; Wed, 28 Feb 2007 06:41:30 -0500 Original-Path: shelby.stanford.edu!newshub.stanford.edu!postnews.google.com!k78g2000cwa.googlegroups.com!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 26 Original-NNTP-Posting-Host: 213.94.228.210 Original-X-Trace: posting.google.com 1172660913 11194 127.0.0.1 (28 Feb 2007 11:08:33 GMT) Original-X-Complaints-To: groups-abuse@google.com Original-NNTP-Posting-Date: Wed, 28 Feb 2007 11:08:33 +0000 (UTC) In-Reply-To: User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.10) Gecko/20050716 Firefox/1.0.6,gzip(gfe),gzip(gfe) X-HTTP-Via: 1.0 EMF3ASPROXY03 Complaints-To: groups-abuse@google.com Injection-Info: k78g2000cwa.googlegroups.com; posting-host=213.94.228.210; posting-account=hWoAPxMAAAAnBKSBz1ZivwUPPjEuve7bvVCHZQ8rhrluPfwcBJd92w Original-Xref: shelby.stanford.edu gnu.emacs.help:145917 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:41522 Archived-At: On Feb 28, 3:16 am, Kevin Rodgers wrote: > Robert Thorpe wrote: > > I don't know anything about this code, but what is shown here is a > > rather common lisp error. > > > The function nero-follow-numbers is used in a macro. This macro is > > used in the file/compilation block nero.elc. > > The bytecompiler works on a per file basis. It compiles each of the > > defuns to bytecodes completing it's actions once the file is > > finished. Macros though must be expanded when the code is being read, > > at this stage the defuns in the file have not yet been finalised. > > > This works fine for the normal evalutator because it finalises and > > installs a function at the end of the defun form. > > > This is why "eval-and-compile" is needed. > > A cleaner design would be for the macro to return a form that contains a > call to the function, rather calling the function during macro expansion > to generate the returned form. Yes, but that depends on what the function does, if it does a significant amount of computation then running it only at macroexpansion time will make the program faster.