From: Alan R. <ala...@gm...> - 2009-07-27 00:08:31
|
(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. -Alan |
From: Kevin R. <kp...@ma...> - 2009-07-27 03:09:58
|
On Jul 26, 2009, at 20:08, Alan Ruttenberg wrote: > (defun foo () (unwind-protect (return-from foo (values 1 2) 2))) Not necessarily relevant, but this RETURN-FROM form is incorrect; RETURN-FROM has at most two parameters. -- Kevin Reid <http://switchb.org/kpreid/> |
From: Alan R. <ala...@gm...> - 2009-07-27 13:25:26
|
Good point. Misplaced parenthesis - meant the second 2 to be the cleanup form. -Alan On Sun, Jul 26, 2009 at 10:54 PM, Kevin Reid<kp...@ma...> wrote: > On Jul 26, 2009, at 20:08, Alan Ruttenberg wrote: > >> (defun foo () (unwind-protect (return-from foo (values 1 2) 2))) > > > Not necessarily relevant, but this RETURN-FROM form is incorrect; > RETURN-FROM has at most two parameters. > > -- > Kevin Reid <http://switchb.org/kpreid/> > > > > > > ------------------------------------------------------------------------------ > _______________________________________________ > armedbear-j-devel mailing list > arm...@li... > https://lists.sourceforge.net/lists/listinfo/armedbear-j-devel > |
From: Erik H. <eh...@gm...> - 2009-07-27 08:02:55
|
Hi Alan! On Mon, Jul 27, 2009 at 2:08 AM, Alan Ruttenberg<ala...@gm...> 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. |
From: Erik H. <eh...@gm...> - 2009-07-28 06:24:52
|
Hi Alan, On Mon, Jul 27, 2009 at 2:08 AM, Alan Ruttenberg<ala...@gm...> 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. It didn't matter whether interpreter or compiled, because both had the same issue. Anyway, thanks for the report! It's fixed now. Bye, Erik. |
From: Alan R. <ala...@gm...> - 2009-07-28 06:40:40
|
On Tue, Jul 28, 2009 at 2:24 AM, Erik Huelsmann<eh...@gm...> wrote: > Hi Alan, > > On Mon, Jul 27, 2009 at 2:08 AM, Alan > Ruttenberg<ala...@gm...> 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. > > It didn't matter whether interpreter or compiled, because both had the > same issue. > > Anyway, thanks for the report! It's fixed now. Excellent :) Thanks for the quick response! -Alan > > Bye, > > Erik. > |