When attempting to GO to a tag whose dynamic extent has ended, ABCL quits and prints the name of the exception used for internally handling GO (org.armedbear.lisp.Go). I see the same behavior in compiled or interpreted code.
CL-USER(1): (lisp-implementation-version) "0.16.0" CL-USER(2): (let ((f nil)) (tagbody (setf f (lambda () (go foo))) foo) (funcall f)) org.armedbear.lisp.Go abcl-src-0.16.0 chandler$
-- Brian Mastenbrook brian@mastenbrook.net http://brian.mastenbrook.net/
Brian,
On Thu, Sep 17, 2009 at 9:57 PM, Brian Mastenbrook brian@mastenbrook.net wrote:
When attempting to GO to a tag whose dynamic extent has ended, ABCL quits and prints the name of the exception used for internally handling GO (org.armedbear.lisp.Go). I see the same behavior in compiled or interpreted code.
CL-USER(1): (lisp-implementation-version) "0.16.0" CL-USER(2): (let ((f nil)) (tagbody (setf f (lambda () (go foo))) foo) (funcall f)) org.armedbear.lisp.Go abcl-src-0.16.0 chandler$
This issue has been fixed in trunk - which checks whether or not the extent has ended and doesn't throw the exception if it has - and will be released in 0.17 (to come in 2 weeks). A preliminary fix has been released in 0.16.1.
Thanks for your report!
Bye,
Erik.
armedbear-devel@common-lisp.net