Dear developers of CMU lisp, 

I'm trying to port an application to CMU lisp
which relies heavily on creating/modifying LISP functions 
on the fly with function compile. I see rather strange effects
when recompiling the same function again. When I type 

(compile 'is-bla '(lambda (x) nil))

(compile 'is-bla '(lambda (x) (eq (car x) 'bla)))

(compile 'get-bla '(lambda (x) (cond ((is-bla x) (cdr x)) (t 'error))))

at the command prompt I get a warning about (cdr x) being dead code
in the last line and 

(get-bla '(bla 3))

returns error instead of (3).

Without the first line everything works as expected.
Adding (declare (ignore x)) in the first line removes
the warning about unused variable x but does not change the error.

I have used the Linux binary of release-19a which 
I downloaded from 

http://www.pmsf.de/pub/cmucl/release/19a/cmucl-19a-x86-linux.tar.bz2 

I also tried the same file in 

http://www.pmsf.de/pub/cmucl/snapshots/2004/10/

with the same results.

Best regards
 
 Gerhard


-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     Dr. Gerhard Schellhorn
     Lehrstuhl fuer Softwaretechnik und Programmiersprachen
     Institut fuer Informatik
     Universitaet Augsburg
     D-86135 Augsburg

     email: [EMAIL PROTECTED]
     Tel: ++49 821/598-2124
     FAX: ++49 821/598-2175
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Reply via email to