Setup should be relatively simple. Equipment needed: Common Lisp, Quicklisp, and Hunchentoot.
- Pick your Common Lisp: SBCL, CLISP, ECL, ABCL, CCL, LispWorks, AllegroCL, XCL, WCL, CMUCL, GCL, etc.
- Install Quicklisp.
- Run (ql:quickload "hunchentoot").
- Run (hunchentoot:start (make-instance 'hunchentoot:acceptor :port 4242)).
Depending on which operating system you have and which Common Lisp you used, you’ll get different errors when you follow those instructions.
Trouble is, getting a Common Lisp implementation with CFFI and thread support is difficult. I regularly program on Mac OS X, Linux, and Windows; I need languages which work well on all three operating systems. Sadly, there are few Common Lisps that have working ports.
SBCL comes closest, but it crashes on Xen (so no Hunchentoot on my Gandi.net webserver).
CLISP has CFFI on Mac OS X, but only if you use "fink install ffcall && fink install clisp +dynffi to get it. MacPorts CLISP is no go. Even with Fink, CLISP lacks thread support. Homebrew CLISP isn’t any different, and I doubt DarwinPorts is either.
ECL lacks thread support on Mac OS X and Ubuntu.
ABCL takes time to setup: Install sun-java6-jdk. Download ABCL. Unzip ABCL. Move JAR to home. Add JAR to CLASSPATH. Create alias for JAR command. Install rlwrap. Generate completions. Modify alias to use rlwrap. Jump off bridge. Reload shell configuration. And after all that, ABCL lacks thread support according to Bordeaux Threads/Quicklisp.
CCL’s installation procedure is involved.
LispWorks and AllegroCL are proprietary. Obtaining valid license files is bothersome, and I don’t trust the projects to stay current.
OpenMCL and CMUCL are out of date and unavailable for modern Ubuntu versions.
XCL and WCL are maintained by very few people, and they must be manually compiled from source.
GCL is out of date, it fails to build with MacPorts, and Fink doesn’t even know it exists.
Update: Lispbox is just what the doctor ordered. It has working CCL, Emacs, SLIME, Quicklisp, CFFI, and threads.