So, yeah, San Jose airport, Sunnyvale, the suburbia wasteland where everyone runs an it company. Google – Summer Of Code </reverb> coming to a theater near you. (I was a mentor for BRL-CAD this time around.
In an attempt to be semi-useful instead of engaging in typical blog self-wankery, I will endeavor to provide possibly useful information. *boggle*
SBCL on my hackintop; my story.
When I’m not at work, my computer of choice is a 17″ macbook pro running 10.4 (at work, it’s an 8 core mac pro with 32g ram, a 30″ display, and two 23″ displays.. they spoil me). So running an SBCL image with hunchentoot and swank and all that goodness seems… well, kind of important. It’s shakey, but I’m guessing a lot better than it was during the reddit debacle. Given that my environment is so damn similar, I found the saga… intriguing.
We want to install, SBCL, but we need to use a variant. We require threading for it to be useful (I imagine this brings us to the ‘experimental’ area, but that’s ok. This is a dev box, not a production box.) We have to add the threads variant. After doing an “info sbcl”, I saw it, but my first couple guesses on how to invoke it were wrong, thus; manual time. A space is required between the package and the variant arguments.
/$ sudo port
Entering interactive mode… (“help” for help, “quit” to quit)
Ho hum, go get a cup of coffee, tee, mountain dew, vodka, whatever… Once it’s installed, I discovered that the Emacs that ships with osX is feeble, soo back in ports for “> install emacs x11”. I don’t bother with the macports version of slime.
> install sbcl threads
In my $HOME/src/ directory (where I put all the source code that is not mine), I check out slime I also check out some ucw stuff and detachtty, but that doesn’t matter.
I add the slime binding to my $HOME/.emacs file
and create a symlink for ASDF with a quick “mkdir -p $HOME/.sbcl/systems ; ln -s $HOME/src/slime/*.asd $HOME/.sbcl/systems/” and fire up SBCL.
(add-to-list ‘load-path “~/src/slime”) ; your SLIME directory
(setq inferior-lisp-program “/opt/local/bin/sbcl”) ; your Lisp system
One SBCL is running, I need all those shiney libraries. ASDF-INSTALL will grab all the ones I feel I need at the moment, so “(require ‘asdf)” followed by “(require ‘asdf-install)” gets my image to that happy place. Given what I’ve been poking with lately, “(asdf-install:install ‘hunchentoot)” would be sufficient, with its big dependency chain. You can see what asdf packages you have installed by looking in $HOME/.sbcl/systems. With that done, all those linux-centric tutorials for hunchentoot suddenly become viable on osX.