[slime-devel] SBCL, Win32 and git SLIME

Helmut Eller heller at common-lisp.net
Thu Jun 11 16:20:38 UTC 2009


* Gleb Golubitsky [2009-06-11 10:21+0200] writes:

> Hi All,
>
> 2 days ago i'd checkouted fresh SLIME from git repo
> (http://github.com/nablaone/slime.git) and found out that SLDB with
> SBCL at win32 is broken.

Technically, SBCL's READ-CHAR-NO-HANG is broken on Windows and
apparently nobody is motivated to fix that.

> The trouble was when you enter to sldb and
> choose any restart, the inferior-lisp completely hangs (when i try to
> evaluate something in REPL the only i got was the message "the command
> is queued").
>
> I've hacked abit into the code and found a workaround for this problem:
>
> diff --git a/swank.lisp b/swank.lisp
> index b66af8a..35b879b 100644
> --- a/swank.lisp
> +++ b/swank.lisp
> @@ -2534,6 +2534,7 @@ after Emacs causes a restart to be invoked."
>                 (handle-sldb-condition c))))))
>      (send-to-emacs `(:debug-return
>                       ,(current-thread-id) ,level ,*sldb-stepping-p*))
> +    #-(and sbcl win32)
>      (wait-for-event `(:sldb-return ,(1+ level)) t) ; clean event-queue
>      (when (> level 1)
>        (send-event (current-thread) `(:sldb-return ,level)))))
>
> I'm not sure whether this "patch" breaks something else but it's
> working for me.

We don't allow this kind of conditional code in the portable parts of
Swank.  Implementation dependent stuff goes to swank-sbcl.lisp.  In this
case that means a patch for WAIT-FOR-INPUT would be more interesting.

Helmut.





More information about the slime-devel mailing list