CL-SDM is a library that provides utility functions and some extra batteries to Common Lisp. It is, essentially, my personal standard library of things I tend to use often. CL-SDM supports SBCL primarily, but is also intended to work in ClozureCL and Clisp.

The package is divided into a few separate sub-packages:

Most of the code was either designed out of need, but also occasionally to reduce typing. The library draws inspiration from Alexandria, UIOP, and the standard library in Crystal (and Ruby, by extension).

Wanna support this project? Buy Remilia a coffee on Ko-Fi, or support Remilia's through Liberapay.

Buy Me a Coffee at ko-fi.com Donate using Liberapay

How do I get set up?

There are two external dependencies: BABEL and TRIVIAL-INDENT. Once you have these installed...

  1. Clone this repository locally.
  2. Use ASDF to load the system inside of your Lisp implementation (e.g., (asdf:load-system :cl-sdm)).
  3. Enjoy.


Style info

I use a slightly different style for my code.

Unit Tests

The unit tests require two additional external dependencies: FLEXI-STREAMS and FiveAM. Once these are installed, just do (asdf:test-system :cl-sdm) from the REPL.


This is partially just so I have a place to remember what I'm planning to do, and a record of what I've done.

How do I contribute?

  1. Go to https://chiselapp.com/user/MistressRemilia/repository/cl-sdm and clone the Fossil repository.
  2. Create a new branch for your feature.
  3. Push locally to the new branch.
  4. Create a bundle with Fossil that contains your changes.
  5. Get in contact with me.