Using Common Lisp on Mac OS X

I’ve been a Lisp nut for years. I was first exposed to Lisp on my TRS-80, when I was about thirteen; Randy Beer had written a Lisp introduction in the March ’83 issue of 80 Micro, and I remember reading it again and again. I’ve used various flavors of Lisp for exploratory prototyping programming over the years, and have enjoyed using both Scheme and Common Lisp.

Getting a dialect of Common Lisp running on Mac OS X isn’t hard — in fact, if you’re just setting out, an excellent choice is LispWorks Personal Edition. I’ve recently gotten to the point, however, where I’ve wanted to do some work with the Common Lisp Interface Manager, which isn’t supported in LispWorks Personal Edition under Mac OS X, and set out to configure a Common Lisp installation on my MacBook from the ground up.

It wasn’t difficult, although it took some Googling to get all the pieces together; shortly after I finished, someone on the Bay Area Functional Programmer‘s mailing list asked about running Common Lisp on Mac OS X, and I put together my notes on the topic and replied. The list is fairly small — less than 300 members — and I promised them and myself that I’d organize the notes and provide them in a more accessible location.

What follows is a step-by-step installation guide to installing Steel Bank Common Lisp (SBCL) and McCLIM on a PowerBook G4; I undertook this from the initial notes I took configuring the MacBook. I chose SBCL because it’s well-supported by the open source community and works well with McCLIM; I have nothing against other Common Lisp implementations, including Clozure. 

A word of warning is in order: I’m comfortable with Common Lisp, but relatively unfamiliar with how Common Lisp programmers handle package distribution. I get the basic idea behind ASDF, of course, but I’m not seasoned in its use. Consequently, I had a get-things-working-and-clean-up-later mentality when I undertook my first SBCL-McCLIM configuration, and this largely remained when I wrote what follows. Other Lisp developers may have better ways to organize their working environments, and I’d welcome positive comments (drop me an email, and we’ll figure out how to incorporate your feedback).

Starting out, you should have a relatively up-to-date Mac OS X box (I’ve done this on Mac OS X 10.4.x and 10.5.x systems). When you’re done, you will have installed Carbon Emacs, SLIME, SBCL, and McCLIM configured to work with the X Windows server Mac OS X provides, along with darcs. 

Continue reading Using Common Lisp on Mac OS X

The obligatory first post…

Installing and configuring WordPress has been on my personal to-do list for an absurdly long amount of time. Back in February 2002, I started a personal blog on LiveJournal, which I kept up-to-date on an intermittent basis. I’d always planned on using it both as a professional soapbox and a personal journal, although it quickly became more of the latter than the former. In recent years, it’s largely lain fallow, a victim of benign neglect as I tackle professional writing and engineering commitments.

With the imminent publication of my latest book, Beginning Javaâ„¢ ME Platform (Beginning from Novice to Professional), it’s again apparent that I should put more effort into reaching out to both those I know and those who read my work. Not only is this an important part of publicity for me as an author, but it’s also a service to you, my readers, because it gives me an opportunity to keep you up to date. I only hope that I am more successful in keeping you up to date than I am self-publicity, something I have generally neglected. 

Hence, this blog.

I’m not certain what all I will post here, or how frequently I will post. You can certainly expect any updates or feedback on my books, of course, but I’m also planning on using this as a working notebook for other technical musings. I don’t have any plans to become a career blogger and make this a central part of my professional activities; to be frank I think there’s too much of that on the Internet already! Instead, I think this is going to fill a very narrow nice, with me posting the occasional update to a previous (probably paper) publication, various tips and tricks I’ve picked up in my engineering career, and possibly some engineering notes about things I’ve found difficult in the hopes that capturing it here will help others.

Thanks for stopping by!