2006-09-10: I'm using Span for a continuations-based webserver (that speaks mod_lisp). The green threading support depends on sbcl's unix-layer, so isn't portable, but should be easily ported ;) The server code is in server/, and depends on sbcl's bsd-sockets and on ironclad (asdf-installable). The example page depends on Edi Weitz's CL-WHO. The code is highly experimental, and some things are downright wrong, like the send-string function, which doesn't take SSIZE_MAX into account.

New: A binary distribution for linux/x86. This is simply a bzipped executable clisp image. Download it here. No guarantee, don't blame me if it messes up your computer, etc.

In short, Span/NLI is a set of portable extensions to Common Lisp written in Common Lisp. I'm not really interested in hacking the type system (for that, see Qi), but in making it a bit easier to use, especially for someone coming from an Unix perspective. In order to achieve that, we have: syntactic sugar to abbreviate let, let*, flet, labels, setf and lambda, support for easier manipulation of functions (binding values directly to lexical functions, dynamically-scoped functions and calling the result of an arbitrary expression without an explicit funcall), and call/cc, on top of which cooperative multitasking is implemented. All that is in portable Common Lisp and compiles to portable CL.

Introduction
Syntactic sugar
CLOS-compatible message-passing OO
The code

Dependencies:

Examples:

Paul Khuong (pvk at same in canada) & cie.


P.S. I know, the website sucks. I prefer writing code to writing HTML.