Search code examples
emacsclojureeclipse-cdtslime

Problems getting Emacs 24 to run SLIME and Clojure Debug Toolkit (CDT)


I'm trying to get Slime working with CDT and emacs 24, to no avail, and would appreciate suggestions.

1) I did get clojure-jack-in to run, but only when I loaded swank-clojure 1.3.3 as a lein plugin, as described in the github swank-clojure page, https://github.com/technomancy/swank-clojure.

2) I tried to get swank-clojure 1.4.0-SNAPSHOT loaded as described by George Jahad in http://georgejahad.com/clojure/swank-cdt.html (using Clojure 1.2.1), but I couldn't clojure-jack-in to run. I got the same error as described in 3), below.

3) Most recently, I tried duplicating the results of the short proof-of-concept video on the technomancy.us site, on the "in which radical simplification ensues," http://technomancy.us/149. In this method, I loaded swank-clojure 1.4.0-SNAPSHOT as a lein plugin and confirmed it was loaded to ~/.lein/plugins/swank-clojure-1.4.0-SNAPSHOT.jar. When I created a new lein project, did lein deps on it, opened the project's core.clj file in emacs, and then executed M-x clojure-jack-in, instead of getting a REPL, I got the following error in the emacs minibuffer:

error in process filter: Search failed: "(run-hooks 'slime-load-hook) ;
on port"

Note that the end of the error string does not include a port number. Unless that's an arbitrary truncation of a longer error string, the lack of a port number makes me uneasy.

The *swank* buffer is long, beginning with:

;;; Bootstrapping bundled version of SLIME; please wait...

and ending with:

(provide 'slime-repl)
;;; slime-repl.el ends here

(run-hooks 'slime-load-hook)
;;; proceed to jack in

which is consistent with the error message.

I've spent about six hours on this, including a lot of web searches, and no luck. Thanks for any help you can provide.


ADDENDUM: I've continued experimenting, and now the *swank* buffer ends like before (dying at the same place), but with additional lines at the end. FYI, here it is:

(provide 'slime-repl)
;;; slime-repl.el ends here

(run-hooks 'slime-load-hook)
[WARNING] Overriding profile: 'null' (source: pom) with new instance from source: pom
[WARNING] Overriding profile: 'null' (source: pom) with new instance from source: pom
[WARNING] Overriding profile: 'null' (source: pom) with new instance from source: pom
Downloading: org/clojure/clojure/1.+/clojure-1.+.pom from repository clojars at http://clojars.org/repo/
Unable to locate resource in repository
[INFO] Unable to find resource 'org.clojure:clojure:pom:1.+' in repository clojars (http://clojars.org/repo/)
Downloading: org/clojure/clojure/1.+/clojure-1.+.pom from repository stuartsierra-releases at http://stuartsierra.com/maven2
Unable to locate resource in repository
[INFO] Unable to find resource 'org.clojure:clojure:pom:1.+' in repository stuartsierra-releases (http://stuartsierra.com/maven2)
Downloading: org/clojure/clojure/1.+/clojure-1.+.pom from repository clojure at http://build.clojure.org/releases
Unable to locate resource in repository
[INFO] Unable to find resource 'org.clojure:clojure:pom:1.+' in repository clojure (http://build.clojure.org/releases)
Downloading: org/clojure/clojure/1.+/clojure-1.+.pom from repository clojure-snapshots at http://build.clojure.org/snapshots
Unable to locate resource in repository
[INFO] Unable to find resource 'org.clojure:clojure:pom:1.+' in repository clojure-snapshots (http://build.clojure.org/snapshots)
Downloading: org/clojure/clojure/1.+/clojure-1.+.pom from repository central at http://repo1.maven.org/maven2
Unable to locate resource in repository
[INFO] Unable to find resource 'org.clojure:clojure:pom:1.+' in repository central (http://repo1.maven.org/maven2)
Copying 9 files to /Users/gw/tech/clojurestuff/cljprojects/infwb/lib
Copying 1 file to /Users/gw/tech/clojurestuff/cljprojects/infwb/lib/dev
Listening for transport dt_socket at address: 61012
;;; proceed to jack in

(end of addendum)


ADDENDUM 2 (Dec. 12, 2011) Thanks to all who offered help, especially @ivant, to whom I'm awarding the "check mark." I'm going to consider this situation closed because I've given up trying to fix it. It was complicated by my use of a prepackaged initialization package that I'm sure is quite nice, but I couldn't understand what it was doing, nor whether it was contributing to the problem.

I restarted with a "clean" Emacs 24 and reverted to swank-clojure 1.3.3, and clojure-jack-in works just fine now. I'll try CDT later, once the bug logged to swank-clojure 1.4.0-SNAPSHOT is resolved.

I learned a few things from people's comments--thanks again.


Solution

  • Upgrade to swank-clojure 1.4.0 (released yesterday) and everything will just work out of the box. lein plugin install swank-clojure 1.4.0

    CDT installation and integration are now completely automated. Make sure to remove any old copies of swank-clojure, slime.el and slime-repl.el you have lying around. Just to be safe, also make sure you've got the latest clojure-mode.el installed.