Lisp Outside the Box / ContentsThis was my draft outline. Eleven of the chapters are now available as drafts in PDF form - just follow the links below. Early chapters introduced Common Lisp and were implementation neutral. The rest of the book revolved around specific proprietary and non-proprietary libraries; each part focused more or less on a different lisp implementation: Allegro, Clozure, SBCL, LispWorks, Clojure. I started writing in the middle (because the needs of later chapters were going to drive the contents of earlier ones). After a while I went back to the beginning and continued work from there. Something you hoped to see not on the list? I can but apologise. Found a mistake? Check whether someone else beat you to it, then let me know. IntroductionPART ONE "Open the Box"
PART TWO "Inventory of the Box"
PART THREE "Libraries Inside the Box"Most lisp implementations are accompanied by a rich set of supplementary libraries. Although the aim of this book is to look "outside the box", it's worth noting that the box is typically larger than you'd think; so let's use a few of the libraries which accompany one of the lisp distributions as our starting point. We'll start our tour of lisp libraries with a look at a persistent memory system called AllegroCache. This library is proprietary and it ships with Allegro Common Lisp (ACL). We'll wander through the AllegroCache documentation looking out for salient features. These will lead us to a couple of ubiquitous extensions to Common Lisp (memory management, and multithreading) and we'll digress to examime them in some detail. The Express Edition of ACL is free for personal use and will be suitable for running the examples in the next two chapters. It has a number of built-in restrictions; the one that's most likely to bite is its limit of three AllegroCache connections and I'll remind you of that later. Chapters 15 and 16 are more general and with little modification the examples can be run on most implementations. PART FOUR "Libraries Outside the Box"It's times to take a first look outside. We'll download and install the ch-image image processing library and put it through its paces on Clozure Common Lisp. Along the way we'll pause to consider two invaluable tools: the SLIME development environment and ASDF for system definition. Image processing can get hungry for machine cycles, so this will also be a good opportunity for discussing optimizations. All the libraries we'll be looking at here, along with Clozure CL itself, are open-source and free to use. PART FIVE "Server Boxes"We're ready to graduate to writing servers. We'll be working with several libraries over the next four chapters and in particular the Hunchentoot web server. We'll consider socket communications in general, different approaches to HTTP, techniques for parsing input and generating output, and how to make your server "solid".
Although we'll be working on Steel Bank Common Lisp (SBCL) you might
have some trouble spotting that. All the examples will be shown within
the SLIME REPL ( All the libraries we'll be looking at here, along with SBCL itself, are open-source and free to use.
PART SIX "Gift-wrapping the Box"
PART SEVEN "Talking to Other Boxes"
APPENDICES
Copyright © Nick Levine 2009 - 2011. Some rights reserved. This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/3.0/ |