FARE-MOP is a small collection of utilities using the MetaObject Protocol. It notably contains a SIMPLE-PRINT-OBJECT method, and a SIMPLE-PRINT-OBJECT-MIXIN mixin that allow you to trivially define PRINT-OBJECT methods that print the interesting slots in your objects, which is great for REPL interaction and debugging.
binascii is a Common Lisp library for converting binary data to ASCII text of some kind. Such conversions are common in email protocols (for encoding attachments to support old non-8-bit clean transports) or encoding binary data in HTTP and XML applications. binascii supports the encodings described in RFC 4648: base64, base32, base16, and variants. It also supports base85, used in Adobe's PostScript and PDF document formats, and a variant called ascii85, used by git for binary diff files.
Screamer is an extension of Common Lisp that adds support for nondeterministic programming. Screamer consists of two levels. The basic nondeterministic level adds support for backtracking and undoable side effects. On top of this nondeterministic substrate, Screamer provides a comprehensive constraint programming language in which one can formulate and solve mixed systems of numeric and symbolic constraints. Together, these two levels augment Common Lisp with practically all of the functionality of both Prolog and constraint logic programming languages such as CHiP and CLP(R). Furthermore, Screamer is fully integrated with Common Lisp. Screamer programs can coexist and interoperate with other extensions to as CLIM and Iterate.
Common Lisp comes with quite some functions to compare objects for equality, yet none is applicable in every situation and in general this is hard, as equality of objects depends on the semantics of operations on them. As consequence, users find themselves regularly in a situation where they have to roll their own specialized equality test.
This module provides one of many possible equivalence relations between standard Common Lisp objects. However, it can be extended for new objects through a simple CLOS protocol. The rules when two objects are considered equivalent distinguish between mutating and frozen objects. A frozen object is promised not to be mutated in the future in a way that operations on it can notice the difference.
We have chosen to compare mutating objects only for identity (pointer equality), to avoid various problems. Equivalence for frozen objects on the other hand is established by recursing on the objects' constituent parts and checking their equivalence. Hence, two objects are equivalent under the OBJECT= relation, if they are either identical, or if they are frozen and structurally equivalent, i.e. their constituents are point-wise equivalent.
Since many objects are potentially mutable, but are not necessarily mutated from a certain point in their life time on, it is possible to promise to the equivalence relation that they remain frozen for the rest of their life time, thus enabling coarser equivalence than the often too fine-grained pointer equality.
This is a unit-testing framework for Common Lisp.
This package provides a noise library for Common Lisp.
This package contains the specification of all functions and variables from GLSL as data.
This is a Common Lisp package for hash table creation with flexible, extensible initializers.
This package contains a few utility functions from the LispWorks library that are used in software such as ContextL.
lisp-unit is a Common Lisp library that supports unit testing. It is an extension of the library written by Chris Riesbeck.
This package provides a small utility library to open a thing (usually a file or URL) in an appropriate handler (usually an external file manager or browser).
Parachute is a simple-to-use and extensible testing framework. In Parachute, things are organised as a bunch of named tests within a package. Each test can contain a bunch of test forms that make up its body.
This is a minimalistic parser of command line options. The main advantage of the library is the ability to concisely define command line options once and then use this definition for parsing and extraction of command line arguments, as well as printing description of command line options (you get --help for free). This way you don't need to repeat yourself. Also, unix-opts doesn't depend on anything and precisely controls the behavior of the parser via Common Lisp restarts.
This library contains code that implements Common Lisp hash tables.
fare-utils is a small collection of utilities. It contains a lot of basic everyday functions and macros.
The Plump-SEXP library is a backend for Plump which can convert between S-expressions and the Plump DOM.
Additional dolist style macros for Common Lisp, such as doalist, dohash, dolist*, doplist, doseq and doseq*.
Alexandria is a collection of portable utilities. It does not contain conceptual extensions to Common Lisp. It is conservative in scope, and portable between implementations.
Closer to MOP is a compatibility layer that rectifies many of the absent or incorrect CLOS MOP features across a broad range of Common Lisp implementations.
CL-UNICODE is a portable Unicode library Common Lisp, which is compatible with perl. It is pretty fast, thread-safe, and compatible with ANSI-compliant Common Lisp implementations.
This Common Lisp library focuses on the small set of basic color manipulations (lightening, compliments, etc.) you might use to generate a color palette for a GUI or web page.
Confidence is a test framework for Common Lisp that focuses on simplicity. It avoids bureaucracy and makes it easy to work interactively, without a complicated setup, and with explicit functions and decisions.
The LOCAL-TIME library is a Common Lisp library for the manipulation of dates and times. It is based almost entirely upon Erik Naggum's paper "The Long Painful History of Time".
cl-strings is a small, portable, dependency-free set of utilities that make it even easier to manipulate text in Common Lisp. It has 100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.