[armedbear-devel] [FIXED?] Bug: Attempt to GO to a tag whose extent has ended quits ABCL
evenson at panix.com
Mon Sep 21 11:58:53 UTC 2009
On 9/20/09 1:16 PM, Tobias C. Rittweiler wrote:
> Mark Evenson<evenson at panix.com> writes:
>> On 9/18/09 1:36 PM, Mark Evenson wrote:
>>> Filed as [bug ticket #63]. Thanks for the report.
>>> : http://trac.common-lisp.net/armedbear/ticket/63
> This is not enough. You also have to add a catch to LispThread.
> (threads:make-thread #'(lambda ()
> (let ((f nil))
> (tagbody (setf f (lambda () (go foo))) foo)
> (funcall f)))
> :name "foof")
Unfortunately this doesn't seem to be easy to do in clean manner.
As far as I got to investigate, there is no single place in which to
make the catch, as we seemingly have multiple code paths for executing
forms that fail to share common handler code. For your new test case of
making the error appear in a MAKE-THREAD, the handler is actually
created within the LispThread(Function, LispThread) constructor, which
shares no common code with the place I patched the INTERACTIVE-EVAL
handler in Lisp.java. And neither of these share code with the top
level eval that can be created by invoking Interpreter.eval(String).
Out of time for today, but others please chime in to correct/enhance my
"A screaming comes across the sky. It has happened before, but there
is nothing to compare to it now."
More information about the armedbear-devel