[armedbear-devel] Compiler macros vs source transforms

Erik Huelsmann ehuels at gmail.com
Tue Jul 14 18:59:46 UTC 2009


On Tue, Jul 14, 2009 at 2:22 AM, Kevin Reid<kpreid at mac.com> wrote:
>
> 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.

Thanks for the reaction! That's food for thought. I'll consider what
other reasons there are (probably: non-cl-symbols...)

If there really aren't any, then we still need to reorganize the code:
in that case we will have to leave the entire concept of source
transforms behind.

Bye,

Erik.




More information about the armedbear-devel mailing list