Compiled COMPILE forms at load time Bug
Raymond Toy
toy.raymond at gmail.com
Fri Mar 12 12:35:14 CET 2010
On 3/11/10 9:58 PM, Raymond Toy wrote:
> On 3/10/10 1:47 PM, Helmut Eller wrote:
>> One more thing:
>>
>> (defmacro bar () 1)
>> (compile 'bar '(lambda () 2))
>>
>> should remove the macro binding for bar.
>>
> I agree. I think I've figured out how to remove the macro binding and
> will be checking it in shortly.
Another issue. This is ok:
* (defstruct rrr a)
RRR
* (defun rrr-a () 42)
Warning: Undefining structure type:
RRR
so that this slot accessor can be redefined:
RRR-A
RRR-A
But:
* (defstruct zzz a)
ZZZ
* (compile 'zzz-a '(lambda () 42))
; Compiling LAMBDA NIL:
; Compiling Top-Level Form:
ZZZ-A
NIL
NIL
* (zzz-a)
42
* (make-zzz)
Invalid number of arguments: 1
So COMPILE has silently zapped the structure. We should probably print
he warning for this too.
Note that in both cases any existing structures will be in a bad state.
They still exist, but there's not much you can do with them.
Ray
More information about the cmucl-imp
mailing list