I just want Hunchentoot!

hunchentoot logoThere’s something to be said for tutorials like Lisp for the Web. Adam Peterson’s guide to the Hunchentoot web server is easy and fun. Trouble is, gathering equipment is difficult.

Setup should be relatively simple. Equipment needed: Common Lisp, Quicklisp, and Hunchentoot.

  1. Pick your Common Lisp: SBCL, CLISP, ECL, ABCL, CCL, LispWorks, AllegroCL, XCL, WCL, CMUCL, GCL, etc.
  2. Install Quicklisp.
  3. Run (ql:quickload "hunchentoot").
  4. 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.

newlisp logoFark it, newLISP has a built-in web server, and it runs on Mac OS X, Windows, and Linux.


ccl logoUpdate: Lispbox is just what the doctor ordered. It has working CCL, Emacs, SLIME, Quicklisp, CFFI, and threads.

5 responses to “I just want Hunchentoot!

  1. Actually, Clozure CL’s installation procedure is pretty simple: You do a Subversion checkout, and… you’re done.:)

    • That’s not accurate. The subversion method doesn’t move CCL to a user directory and add CCL to PATH. It also scatters the necessary files, libraries, headers, and Lisp kernel across several directories. There is a DMG available for Mac OS X, which even includes a working Quicklisp installation, but it’s bulky, and again, fails to move CCL to a user directory and add CCL to PATH.

  2. Pingback: Favorite Programming Languages | Speely

  3. What kind of Xen setup gave you trouble with SBCL? I have a couple of web applications running on Xen VPSes running Debian (one with Linode for 4+ years, another with tech.coop), and SBCL runs fine.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s