[armedbear-devel] [j-devel] bug - interaction between unwind-protect, function call, multiple values

Erik Huelsmann ehuels at gmail.com
Mon Jul 27 08:02:41 UTC 2009


Hi Alan!

On Mon, Jul 27, 2009 at 2:08 AM, Alan
Ruttenberg<alanruttenberg at 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.




More information about the armedbear-devel mailing list