From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: cwitty@newtonlabs.com (Carl R. Witty) Newsgroups: gmane.lisp.guile.devel Subject: Re: bug in syncase Date: 04 Dec 2002 10:27:52 -0800 Sender: guile-devel-admin@gnu.org Message-ID: References: NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=US-ASCII X-Trace: main.gmane.org 1039026682 22239 80.91.224.249 (4 Dec 2002 18:31:22 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Wed, 4 Dec 2002 18:31:22 +0000 (UTC) Cc: Dirk Herrmann , Guile Development Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 18JeIp-0005mQ-00 for ; Wed, 04 Dec 2002 19:31:19 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 18JeJY-0002l7-00; Wed, 04 Dec 2002 13:32:04 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.10.13) id 18JeIc-0001sk-00 for guile-devel@gnu.org; Wed, 04 Dec 2002 13:31:06 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10.13) id 18JeIZ-0001pU-00 for guile-devel@gnu.org; Wed, 04 Dec 2002 13:31:04 -0500 Original-Received: from dsl254-046-113.sea1.dsl.speakeasy.net ([216.254.46.113] helo=quasar.newtonlabs.com) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 18JeIY-0001nA-00 for guile-devel@gnu.org; Wed, 04 Dec 2002 13:31:03 -0500 Original-Received: from bogomips.newtonlabs.com (bogomips [10.0.0.5]) by quasar.newtonlabs.com (8.9.3/8.9.3/Debian/GNU) with ESMTP id KAA11388; Wed, 4 Dec 2002 10:27:53 -0800 Original-Received: (from cwitty@localhost) by bogomips.newtonlabs.com (8.9.3/8.9.3/Debian/GNU) id KAA08659; Wed, 4 Dec 2002 10:27:52 -0800 Original-To: Neil Jerram In-Reply-To: Neil Jerram's message of "21 Nov 2002 20:22:45 +0000" Original-Lines: 34 X-Mailer: Gnus v5.4.61/Emacs 19.34 Errors-To: guile-devel-admin@gnu.org X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.0.11 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Developers list for Guile, the GNU extensibility library List-Unsubscribe: , List-Archive: Xref: main.gmane.org gmane.lisp.guile.devel:1800 X-Report-Spam: http://spam.gmane.org/gmane.lisp.guile.devel:1800 Neil Jerram writes: > I would say that there are no statements except that transformed Elisp > code should behave in the same way as Emacs. ... > So Guile as it stands is already wrong in the last result. It looks > as though Emacs behaves as though there is no memoization at all. > > It strikes me that macros have two meanings that are confused. > > 1 is to prevent automatic evaluation of arguments. > > 2 is to gain execution efficiency by expanding/transforming code at > read time. Emacs does not do memoization during eval; macros are re-evaluated every time they are encountered. However, if you byte-compile a function (typically by byte-compiling an entire file at install time, although it's also possible to byte-compile an individual function at run time), macros are expanded during the byte-compilation process. This means that Emacs Lisp code which is to run correctly both interpreted and compiled must be insensitive to when or how often macro expansion is done; such code -- which includes virtually all distributed Emacs Lisp code, I would think -- would also work if macro expansion were memoized. The interactive development process would be different, though; for a complete clone of Emacs, including the development process, you would want to have an eval that does no memoization and some sort of separate compilation phase. The above is how GNU Emacs 19.x worked, but I would be surprised if any of the branches or later versions were different. Carl Witty _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://mail.gnu.org/mailman/listinfo/guile-devel