On 2011-08-04 22:29 +0800, Helmut Eller wrote:
I assume you do something like
shell# rlwrap java7 -Xss450k -cp /opt/java/current/lib/tools.jar:/scratch/kawa -agentlib:jdwp=transport=dt_socket,server=y,suspend=n kawa.repl -s Listening for transport dt_socket at address: 39670 #|kawa:1|# (require "/home/helmut/lisp/slime/contrib/swank-kawa.scm") #|kawa:2|# (create-swank-server 4005)
This was exactly how I started swank. But it does not run in the background. How to stop swank and go back to the REPL?
Another issue I noticed is after leaving emacs idle for a while, surprisingly there appear out of nowhere two pending requests to the swank server. I can't figure out a way to restart the swank server without restarting kawa.
My current setup is adding a 'kawa entry to 'slime-lisp-implementations and M-- M-x slime RET kawa RET (just like suggested in swank-kawa.scm).
But if I disconnect slime-repl (using the repl shortcut ,disconnect) from the inferior swank server, that seems to also stop the swank server.
So I eval in emacs
M-: (slime-inferior-connect (get-buffer-process (current-buffer)) \ (slime-inferior-lisp-args (get-buffer-process (current-buffer))))
to restart the swank server and have the slime-repl buffer open up again. This now works perfectly with your patch.
One inconvenience with the Kawa swank server is it does not respond to slime-interrupt. Is there a workaround?
Thank you very much for your informative answer.
[snipped 36 lines]
Leo