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.