Hi Alan!
On Mon, Jul 27, 2009 at 2:08 AM, Alan Ruttenbergalanruttenberg@gmail.com wrote:
(defun bar () (values 1 2)) (bar) => 1 2 (defun foo () (unwind-protect (return-from foo (bar)) 2)) (foo) => 1 (defun foo () (unwind-protect (return-from foo (values 1 2) 2))) (foo) => 1 2
I noticed this in an early version of abcl, but just downloaded and built from subversion and it's still there. Doesn't seem to matter whether it is interpreted or evaluated.
I can see the error in the compiler; it's in p2-unwind-proctect: the exception handler doesn't save the values register of the thread. Maybe it's the same in the interpreter. I'll have a look later today, if I have time.
Thanks for the report!
Bye,
Erik.