Re: Compiled COMPILE forms at load time Bug

Raymond Toy <[email protected]>
Newsgroups gmane.lisp.cmucl.devel
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.