Hi,
Temporary buffers created by Slime will save the current connection in `slime-buffer-connection'. If you disconnect, and then connect again to the same Lisp process, the connection stored in the `slime-buffer-connection' variable will still point to the previous connection which was closed by the disconnection.
If we keep track of the connections we disconnected from, and look during slime-connect if the connection attempt is actually a reconnection (determinable by comparing host, and PID of the Lisp process, I think), we could make the above scenario work.
How would you be going to implement this?
a) We could grovel all buffers, and just reset slime-buffer-connection if appropriate.
b) Slime-connections are network processes. We could add a level of indirection (putting the process in a struct, say), and make connections reconnectable this way.
The first option is probably simpler, while the latter may be cleaner. FSVO "cleaner", anyway.
What do you think?
-T.
* Tobias C. Rittweiler [2008-08-01 23:04+0200] writes:
How would you be going to implement this?
a) We could grovel all buffers, and just reset slime-buffer-connection if appropriate.
b) Slime-connections are network processes. We could add a level of indirection (putting the process in a struct, say), and make connections reconnectable this way.
The first option is probably simpler, while the latter may be cleaner. FSVO "cleaner", anyway.
What do you think?
I'd use a) rather than b) as the latter requires lots of changes. But rather than a) I would not bother with "fixing" temporary buffers. It's easy enough to close those buffers with 'q' and it's also easy to recreate them by invoking the respective command.
Helmut.
On Sat, Aug 2, 2008 at 1:22 AM, Helmut Eller heller@common-lisp.net wrote:
I don't know if this is related or not, but this reminded me...
Sometimes when I'm doing wacky things, wedging SBCL, and kill -9'ing it from a terminal, Slime gets confused about connections: things which should use the "Start Slime [y/n]" stuff in slime-connection instead report: "no connection". M-x slime usually works, though.
Cheers,
-- Nikodemus