I've been having trouble with setting up SLIME to work with both Clojure and Common Lisp. Most Clojure devs tend to use the stripped down SLIME available via ELPA that is frozen for Clojure compatibility. I, however, do a lot of Common Lisp hacking as well and I generally use the SLIME CVS version (obtained via QuickLisp).
There are some well known problems with the swank implementation for Clojure - it doesn't work with autodoc (if it's enabled SLIME freezes), it doesn't support some things like fuzzy-completion, etc. This question discusses the same subject the the answer suggested there is a no go for me.
(add-hook 'slime-connected-hook
(lambda ()
(if (string= (slime-lisp-implementation-type) "Clojure")
(setq slime-use-autodoc-mode nil)
(setq slime-use-autodoc-mode t))
))
(add-hook 'slime-mode-hook
(lambda ()
(if (eq major-mode 'clojure-mode)
(slime-autodoc-mode 0)
(slime-autodoc-mode 1))))
(add-hook 'slime-repl-mode-hook
(lambda ()
(if (string= (slime-lisp-implementation-type) "Clojure")
(progn (setq slime-use-autodoc-mode nil)
(slime-autodoc-mode 0))
(progn (setq slime-use-autodoc-mode t)
(slime-autodoc-mode 1)))))
The solution looks great on paper, but for me slime-lisp-implementation-type is always nil. (same for slime-lisp-implementation-type:connlocal with local connections).
What I basically need is just a way to know I running SLIME with Clojure's swank to be able to modify the problematic settings.