Login
CL-SDM
Login

CL-SDM

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 and is tested regularly with it. ClozureCL and Clisp are also supported, and CL-SDM is tested semi-regularly with these. ECL seems to works, but it has some strange quirks, and is rarely tested.

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

Releases

Releases can be found on the wiki.

Design

The main CL-SDM system 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), and in some cases overlaps.

There are also some additional ASDF systems that ship with CL-SDM that are designed to work with the main CL-SDM system:

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.

Development

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.

TODO/Wishlist

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. It is definitely not exhaustive or complete.

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.

Contributors