[armedbear-devel] Compiler macros vs source transforms

Kevin Reid kpreid at mac.com
Tue Jul 14 00:22:16 UTC 2009


On Jul 13, 2009, at 17:04, Erik Huelsmann wrote:

> So, this is his take on it in XCL:
>
> * as the CLHS documents: there can only be 1 compiler-macro per symbol
> * the user is free to define his own compiler macros
>
> The two statements above mean that the (correct) operation of the
> compiler should not depend on any compiler macros.
>
> XCL uses source-transforms to make sure the user can define compiler
> macros for any symbol he or she likes.

Er, this would be true except for CLHS 11.1.2.1.2:

"Except where explicitly allowed, the consequences are undefined if  
any of the following actions are performed on an external symbol of  
the COMMON-LISP package:
...
3. Defining, undefining, or binding it as a macro or compiler macro.  
(Some exceptions are noted below.)"

That is, the implementation may rely on compiler macro definitions for  
CL: symbols.

There may be reasons to use a different mechanism than compiler- 
macros, but user redefinition is not one of them.

-- 
Kevin Reid                                  <http://switchb.org/kpreid/>








More information about the armedbear-devel mailing list