[armedbear-devel] Serious bug involving UWP

Mark Evenson evenson at panix.com
Thu Sep 17 13:33:08 UTC 2009


On 9/17/09 2:33 PM, Tobias C. Rittweiler wrote:

>> Tobias:  are you relying on visual inspection of the problem here, or
>> are you getting a backtrace somehow?  I didn't understand your comment
>> "(we come here through *DEBUGGER-HOOK*)".
>
> *DEBUGGER-HOOK* is set to SWANK-DEBUGGER-HOOK which calls DEBUG-IN-EMACS
> which calls SLDB-LOOP.
>
> READ-FROM-STRING calls ERROR which calls INVOKE-DEBUGGER which calls the
> function in *DEBUGGER-HOOK*
>
> Does that make more sense?

Yep:  thanks for helping ol' thick-in-the-head here.

> Just insert some FORMAT calls to SLDB-LOOP, in particular one before the
> UWP, and one as the first form of the protected form.

If I patch swank.lisp as attached I see

SLDB-LOOP-1
SLDB-LOOP-2
SLDB-LOOP-3
SLDB-LOOP-6
SLDB-LOOP-7
SLDB-LOOP-8

indicating that the SLDB-LOOP UNWIND-PROTECT is executing part of the 
protected forms, and then going to the cleanup forms.  Or am I 
misinterpreting something again?

>> SBCL writes the string to a temporary file, then compiles that file.
>> Since the ABCL code for compiling a file works ok, I would maybe pursue
>> that route.
>
> Yes, that's the way it should be implemented for other reasons: COMPILE
> does not process source as file compiler, think of EVAL-WHEN.
>
> See my comment at http://trac.common-lisp.net/armedbear/ticket/56 for
> the proper way of how to implement SWANK-COMPILE-STRING.

Eliminating the use of temporary files in the compiler as you suggest in 
your note to ticket #56 is needed in the near future anyways so ABCL can 
operate in the absence of a filesystem, so implementing 
COMPILE-FROM-STREAM is a good idea anyways.

> I'll make it go the route over a temp file, but the UWP issue should be
> resolved first otherwise I'd remove the way to reproduce this issue.

Can you refactor the UNWIND-PROTECT problem into non-SLIME code somehow?

-- 
"A screaming comes across the sky.  It has happened before, but there
is nothing to compare to it now."
-------------- next part --------------
A non-text attachment was scrubbed...
Name: swank-sldb-loop-debug.diff
Type: text/x-diff
Size: 2564 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/armedbear-devel/attachments/20090917/378e4b6f/attachment.diff>


More information about the armedbear-devel mailing list