There is a long-standing bug in SBCL with sockets and finalisers that probably affects SLIME users more than anyone else. If you get errors about closed file descriptors while trying to do compilations, this is probably why.
The fix is in SBCL CVS now (may be tomorrow by the time it gets into anoncvs) or you can patch an older SBCL by adding the following code to .sbclrc or somewhere suitable
(in-package :sb-bsd-sockets) (defmethod socket-close ((socket socket)) (let ((fd (socket-file-descriptor socket))) (cond ((eql fd -1) ; already closed nil) ((slot-boundp socket 'stream) (close (slot-value socket 'stream)) ;; closes fd (setf (slot-value socket 'file-descriptor) -1) (slot-makunbound socket 'stream)) (t (sb-ext:cancel-finalization socket) (handler-case (if (= (sockint::close fd) -1) (socket-error "close")) (bad-file-descriptor-error (c) (declare (ignore c)) nil) (:no-error (c) (declare (ignore c)) nil))))))
-dan