Brian Mastenbrook writes:
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$
I found an opposited bug; a case where an error about a non-existing tag is signalled even though the tag is active:
(assert (eql :go (prog () (funcall (compile nil (lambda () (go :go)))) (return 42) :go (return :go))))
-T.