Links to other sites
Lisp: the programmable programming language

the Lisp programming language

For those seeking to join the new wave of Lisp programmers, you might want to start with books and articles specific for learning and tips on configuring your system.


A new book from 2008:
Let Over Lambda: 50 Years of Lisp by Doug Hoyte.

There is a new work-in-progress Lisp FAQ, circa 2006-07 (contributions encouraged)

News and general topics

Meta-blog: Planet Lisp
News and blogs from the core of our Lisp community
Lisp Gardeners
The pro-active community moving lisp into the future.
CLiki-- the Common Lisp wiki
Wiki of the from the Association of Lisp Users
This is probably where you'll find your local group of Lisp programmers.
CLHS: Selected Highlights of ANSI Common Lisp Spec (HyperSpec)
International Lisp Conference
See conference list at Franz, Inc.

Lisp tools and projects

LispDoc
searchable index of various on-line books, the Lisp language specification, certain Lisp implementations and ASDF-installable libraries
The Common Lisp Directory
common-lisp.net projects
LISPWIRE more Lisp news and resources
The Common Lisp Cookbook
(non-wiki older version on SF.net)
Library from Assoc. of Lisp users
CLOCC-- Common Lisp Open Code Collection including CLLIB and PORT
CL-PPCRE-- portable Perl-compatible regular expressions for Common Lisp
SLIME: Superior Lisp Interaction Mode for Emacs
manual
When you can't find something in the SBCL manual, try the CMU CL docs

Lisp Links

del.icio.us lisp links (popular)
Allegro - Common Lisp Opensource Center
From Franz Inc, makers of Allegro Common Lisp

Package Management

Much thanks to Zach Beane
A better way to get all your lisp libraries in one place!
asdf: Another System Definition Facility
asdf Manual
Tutorial on asdf-install
Install third-party libraries into a Lisp system
The Complete Idiot's Guide to Common Lisp Packages

Data Storage

Persistence in Common Lisp
A white-paper on saving Lisp objects and loading them back later
BKNR
The datastore is a logical descendent of Sven's Prevalence (see below)
CL-Prevalence (See KPAX below)
An in-memory database with (without relational table overhead)
See databases on CLiki

Lisp-based Web Application Servers

Start with Nicky Peeters' paper Using Common Lisp to Build Web Applications
BKNR
KPAX with Prevalence and other projects from Sven Van Caekenberghe
Be sure to read his 2003 case study: Deploying on an Apple Xserve running Mac OS X Server. From the article:
We have this configuration working on a website that gets up to 3.5 million hits a day, with peaks of 300.000 hits per hour, transferring up to 12 Gb a day - all this on modest hardware (but using a big pipe).
Portable AllegroServe
open-source, free web server for Lisp; a variant of AllegroServe, written to run on flavors other than Allegro Common Lisp
AllegroServe
Formerly "Allegro iServe", an open source web application server originally written to be a demonstration of multiprocessing and networking in Lisp while delivering high performance!

See Allegro Webactions and Using Webactions

Tutorials and instructions available from Franz, Inc.

TBNL - A Toolkit for Dynamic Lisp Websites
Lisp on Apache
mod_lisp
Lisp on Apache (not to be confused with cl-modlisp; the two work together)
mod_remoteApp from play.org/code
Similar to mod_lisp but parses HTTP headers only once and sends just the ones you need to your app. Includes SBCL client and C test code.
Preliminary FastCGI Library for SBCL Lisp pasted by kingruedi on #lisp
Note: with FastCGI, you forfeit STDIN and STDOUT, so interactively debugging a live server app becomes rather difficult unless you re-re-map those file handles first, which is probably why mod_lisp came to be.

Networking & Distributed Systems

ACL-COMPAT -- the Allegro Common Lisp compatibility library
This is part of portable-AllegroServe but can be installed stand-alone; supports the usual suspects of Lisp systems
cliki.net's networking links:
Looking for something like Unix select() for Lisp?
SBCL and CMUCL use #'sb-sys:serve-event instead of select(), which works like FreeBSD style kqueue()/kpoll() or Linux epoll(), and OpenMCL's #'process-input-wait works like select(). An Excellent example of nonblocking sockets in SBCL that is brief and to the point.

Other resources and libraries

Lisp Idioms
Coding style
CLSQL
database interface supporting various database engines like PostgreSQL, MySQL, Oracle; more info on cliki
XMLisp
alternative approach for Lisp than SAX/DOM libraries... for those institutions insistent on using XML.
Sven Van Caekenberghe's Lisp movies and libraries
``Peter Norvig found that 16 of the 23 patterns in Design Patterns were `invisible or simpler' in Lisp.''
Lisp hacks

Some of what makes Lisp unique

Debugging is different in ANSI Common Lisp!
Read this thread, Debugging Lisp code (stupid newbie question), on comp.lang.lisp
Conditions go far beyond try-except exception-handling
Condition Handling in the Lisp Language Family
Q: What's the Lisp equivalent of a string library from Perl/Python/Ruby/etc?

A: You don't need one just for strings when you have the SEQUENCE routines.

But for those crossing-over, you might find this helpful: split-sequence.

Some things to consider: do you mind creating new strings during a split as with Perl or Python, or would you prefer to avoid run-time memory allocation?

After all, many common operations in Perl, Python and especially Ruby simply waste CPU cycles and memory. "Processor and RAM are cheap," you say? Well, that depends...! For long-running, persistent processes; for deterministic time (hard real-time) execution; etc; those things matter. The culture and tradition of Lisp simply makes you more conscious and the language itself gives you control over allocating memory at runtime, all without pains of C and C++ memory management.

ACM SIGPLAN - Lisp Pointers 1969-95 (membership required for full text)
Valuable tips on things like parsing, despite predating the ANSI standard. That is, some minor code revisions may be necessary, but the insight gained might be worth a subscription for one year.
Injecting code into a running system? Yes, and detachtty will help!
For those new to Lisp, you might have mistakenly dismissed all mention of "detached" proceses as merely being a Unix job running in the background. If so, learn about detached TTYs!

Links To Other Lists of Links

Google's top Lisp FAQs, Help and Tutorials
Bill Clementson's Lisp bookshelf
lispmachine.net: mr.bill's lisp links

Miscellaneous

Who are you? Please respond to the Lisp Questionnaire!
newLISP
not Common Lisp but may be a non-scheme Lisp1-ish substitute for Python, Ruby, Perl, etc, with one implementation on various operating systems.
Lush - Lisp Universal Shell
not Common Lisp but offers tight integration of C and Lisp for graphics intensive applications, offers inline C with access to Lisp variables
Search: Software / Compilers / Optimization
a specialized search via Google Co-op
Eshell
an implementation of a shell in Emacs Lisp
GOAL
Game Oriented Assembly Lisp -- was created for PS2 game, Jak and Daxter as a second generation domain specific language (the original, GOOL, was developed for Crash Bandicoot).
EmacsWiki: MacKeyMode
fiddle with modifier keys on the Mac: make Command-key be META, Alt/Option be HYPER, etc
logos
Lisp song
lyrics

Content on this page last updated 2011-05-16; URLs verified 2009-07-05

Site maintained by Daniel Pezely every now and then