CL-PREVALENCE is an implementation of Object Prevalence for Common Lisp. It was written by and is being maintained by Sven Van Caekenberghe. CL-PREVALENCE is using S-XML for the XML serialization protocol (there is also a more Lisp-like s-expression-based serialization protocol).

Object Prevalence is a simple but interesting concept first proposed by Klaus Wuestefeld in 2001. IBM developerWorks has a reasonable Introduction to Object Prevalence article. The main Java implementation is called Prevayler, with a (chaotic) wiki site with lots of information and discussions. The following academic paper seems to describe the most essential features of Object Prevalence, without naming it as such: A Simple and Efficient Implementation for Small Databases by Birrell, Jones, and Wobber [1987]. Basically, the idea is this:

That is all there is to the concept of object prevalence. Here are some more details as well as some advantages and limitations:

This code was written by Sven Van Caekenberghe.


The latest version of cl-prevalence is maintained in a Mercurial repository.
An interim release tarball is available: 3.5 release.
This is the currently recommended version.

You can download the old LLGPL source code and documentation as cl-prevalence.tgz (signature: cl-prevalence.tgz.asc for which the public key can be found in the keyring) (build and/or install with ASDF). There is also CVS access.


You can consult the LispDoc generated API is the files CL-PREVALENCE.html and S-SERIALIZATION.html.

Release History

Mailing Lists

CVS version $Id: index.html,v 1.6 2004/07/08 19:59:14 scaekenberghe Exp $

Valid XHTML 1.0 Strict Valid CSS