in which slime and mire and other sludges come into play



I've been getting into Clojure more and more recently, and it's been really enjoyable. My learning project is Mire, a simple multiplayer text adventure. It's a great way to get familiar with the concurrency features of Clojure with a codebase that can still pretty small due to being text-based.

Using SLIME to interactively develop Mire from within Emacs has been really slick—the level of interactivity is really impressive. The problem is, it's a bit of a bear to configure, and there are more moving parts than I'm comfortable with. I'm not the only one either; one of the most common questions in the #clojure channel is how to configure SLIME.

Update: This is very out-of-date. The Swank Clojure readme is the canonical source of getting started instructions.

I've worked on a bit of code to alleviate the confusion. There's nothing about the problem that's particularly tricky; it's just that the necessary code is changing so fast that using a package manager for it isn't feasible. And installing software by hand without a package manager… well let's just say it's fraught with frustration. So I've added an M-x clojure-install function to by fork of clojure-mode that should handle the necessary checkouts and configuration. It should save a lot of confusion for folks who are just getting started and not really sure of the best way to proceed.

Update: If you use the Emacs Starter Kit, you've already got what you need; just hit M-x clojure-install to get going. And it should be in ELPA before too long.

Update: M-x clojure-install has been merged into the mainline clojure-mode repository, so you don't need to use mine any more.

Update: It's been a long time since this post was written; in the mean time Clojure has had two stable releases and a package manager created, so compiling from source as the default installation mechanism doesn't make sense any more. M-x clojure-install has been deprecated in favour of built-in functionality in swank-clojure


« older | 2009-02-03T04:41:09Z | newer »