Bug in Clisp?



Hi,
I've fixed a bug in plot3d and plot2d when run from Clisp.

The cause had to do with definition of local variables. Consider this
simple program:

(defun foo (x &aux (y '(:foo 1)))
   (format t "bar: ~a" (getf y :bar)) (setf (getf y :bar) x))

y is supposed to be a list that is given an initial value (:foo 1)
everytime the function foo is called. That's how it works in SBCL and
Clozure Lisp. However, in Clisp the value of y is persistent, as a
global variable:

[1]> (defun foo (x &aux (y '(:foo 1)))
   (format t "bar: ~a" (getf y :bar)) (setf (getf y :bar) x))
FOO
[2]> (foo 3)
bar: NIL
3
[3]> (foo 9)
bar: 3
9
[4]> (foo 12)
bar: 9
12

Am I doing something wrong, or is it a bug in Clisp?

Regards,
Jaime