From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Dirk Herrmann Newsgroups: gmane.lisp.guile.devel Subject: Re: macros, procedure->macro Date: Thu, 4 Jul 2002 22:16:48 +0200 (CEST) Sender: guile-devel-admin@gnu.org Message-ID: References: NNTP-Posting-Host: localhost.gmane.org Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Trace: main.gmane.org 1025816017 32205 127.0.0.1 (4 Jul 2002 20:53:37 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Thu, 4 Jul 2002 20:53:37 +0000 (UTC) Cc: guile-devel@gnu.org, guile-user@gnu.org Return-path: Original-Received: from fencepost.gnu.org ([199.232.76.164]) by main.gmane.org with esmtp (Exim 3.33 #1 (Debian)) id 17QDbd-0008ND-00 for ; Thu, 04 Jul 2002 22:53:37 +0200 Original-Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.34 #1 (Debian)) id 17QDHl-0002Or-00; Thu, 04 Jul 2002 16:33:05 -0400 Original-Received: from sallust.ida.ing.tu-bs.de ([134.169.132.52]) by fencepost.gnu.org with esmtp (Exim 3.34 #1 (Debian)) id 17QD26-0001JS-00; Thu, 04 Jul 2002 16:16:54 -0400 Original-Received: from localhost (dirk@localhost) by sallust.ida.ing.tu-bs.de (8.9.3+Sun/8.9.1) with ESMTP id WAA05577; Thu, 4 Jul 2002 22:16:49 +0200 (CEST) Original-To: Gary Houston , Marius Vollmer In-Reply-To: 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:741 X-Report-Spam: http://spam.gmane.org/gmane.lisp.guile.devel:741 On Wed, 3 Jul 2002, Dirk Herrmann wrote: > On 1 Jul 2002, Gary Houston wrote: > [...] > > ./guile-core/oop/goops.scm: (procedure->macro > > ./guile-core/oop/goops.scm: (procedure->macro > > ./guile-core/oop/goops.scm: (procedure->macro > > Thanks for pointing these out. I will take a look at them. [...] Except for the three places above, I think replacing procedure->macro with procedure->memoizing-macro should be safe. So what is so special about the uses of procedure->macro at the places above? They appear in the code for define-class, define-generic and define-accessor. In these macros, it is first checked whether the object defined is already of the desired type. That is, if you do a (define-class foo ...), the define-class macro first checks if foo is already a class. If so, the class is re-defined, which means, already existing objects of the former class will be re-defined together with their class. However, the macro define-class needs to check the environment of the macro application in order to figure out, whether the identifier to be defined was already bound to a class. That is, these macros do actually make use of the dynamic nature of the "macros". It is not possible to simply replace them with mmacros. Hmm? Best regards, Dirk _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://mail.gnu.org/mailman/listinfo/guile-devel