I'm trying to get a remote SWANK+SBCL setup going and I've hit a snag. Everything works and I can connect to the running SBCL. However, when I disconnect the SBCL process drives the CPU to 100%.
I've tried this on OS X 10.5, Solaris 2.8, and Linux Ubuntu with SBCL 1.0.20. I've checked that the slime on the remote and local ends are the same version which is the latest from the CVS. My guess is I'm doing something obviously wrong since it looks like a lot of people use this setup without a problem. So, few that I could only find one Google entry that seemed on point but the recommended change is to a function that isn't in my version of slime.
my .emacs file looks like:
(add-to-list 'load-path "path/to/slime") (setq inferior-lisp-program "/usr/local/bin/sbcl") (require 'slime) (slime-setup)
and my .sbclrc file looks like:
(require 'asdf) (require 'asdf-install)
I've got another file called swank.lisp that starts up my remote side sbcl+swank process:
(asdf:oos 'asdf:load-op 'swank) (setf swank:*communication-style* :fd-handler) (setf swank:*use-dedicated-output-stream* nil) (swank:create-server :dont-close t)
I call this file as 'sbcl --load swank.lisp' and the whole system works great. Until I disconnect from the sbcl instance. Then it spikes the CPU and will spin until I stop it.
I've got this working in CLISP but I've been using SBCL and I would like to have both working. Any suggestions?
* Chris Goellner [2008-10-29 03:05+0100] writes:
I'm trying to get a remote SWANK+SBCL setup going and I've hit a snag. Everything works and I can connect to the running SBCL. However, when I disconnect the SBCL process drives the CPU to 100%.
This was caused by a bug. It should be fixed in HEAD.
Thanks for the report.
Helmut.
PS: If you use :fd-handler, slime-interrupt won't work on a remote machine. That works only with :sigio and :spwan.
That does the trick on the CPU utilization. Thanks for the fix.
I commented out the (setf swank:*communication-style* :fd-handler). If I used :sigio or :spawn I got an error.
The :sigio says:
The variable SB-POSIX:O-ASYNC is unbound. [Condition of type UNBOUND-VARIABLE]
when I connect with slime.
The :spawn says:
SWANK-BACKEND:SPAWN not implementated
when I try to run the remote swank. SBCL on Solaris doesn't seem to have the same feature set as my Linux version.
But, with nothing set it works like a charm. Thanks again.
On Thu, Oct 30, 2008 at 5:33 AM, Helmut Eller heller@common-lisp.net wrote:
- Chris Goellner [2008-10-29 03:05+0100] writes:
I'm trying to get a remote SWANK+SBCL setup going and I've hit a snag. Everything works and I can connect to the running SBCL. However, when I disconnect the SBCL process drives the CPU to 100%.
This was caused by a bug. It should be fixed in HEAD.
Thanks for the report.
Helmut.
PS: If you use :fd-handler, slime-interrupt won't work on a remote machine. That works only with :sigio and :spwan.
slime-devel site list slime-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/slime-devel