[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