SkillAgentSearch skills...

Overlord

Build system in Common Lisp

Install / Use

/learn @ruricolist/Overlord
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Overlord

Introduction

Overlord is a build system in Common Lisp. It is a real build system, with all the modern features: rules with multiple outputs, parallel builds, immunity to clock issues, and dynamic dependencies.

But Overlord is more than another build system. Overlord is a uniform approach to dependencies inside or outside of a Lisp image. Conceptually, Overlord is to Make what Lisp macros are to C macros.

Overlord uses a persistent store to track dependencies. This small overhead translates into drastically simplified semantics for the programmer. Much like garbage collection allows programmers largely not to have to think about lifetimes, persistent dependencies allow programmers largely not to have to think about phasing.

For more discussion, consult the wiki. If you are a Lisper, you might want to jump straight to the intro for Lispers.

Advice for users

Note that, to run the test suite, you will need to download Core Lisp, and, if not on Windows, you must have the touch program in your search path. (On Windows, Powershell is used instead).

Overlord stores its persistent data structures in a cache directory. On Linux, this is $XDG_CACHE_HOME/overlord. The data structures stored there are versioned. It might worth checking the cache directory from time to time to delete obsolete files.

Overlord is developed and tested on Clozure and SBCL. In the future it may officially support other Lisp implementations, but that is not a priority.

Examples

Here are some projects that make direct use of Overlord:

  1. cl-https-everywhere. In-process HTTPS Everywhere rulesets, automatically fetched from the HTTPS Everywhere repository and compiled into Lisp code.

  2. Proctor. Proctor treats tests as build targets, allowing you to precisely specify their dependencies and re-run tests only when necessary.

  3. Vernacular. Provides a module system for embedding languages, with arbitrary syntaxes, into Common Lisp systems.

<!-- NB Don’t remove links, even if they’re not currently being used. You might want them again later. --> <!-- NB Don’t remove links, even if they’re not currently being used. You might want them again later. --> <!-- Local Variables: --> <!-- compile-command: "pandoc README.md -o README.html" --> <!-- End: -->
View on GitHub
GitHub Stars63
CategoryDevelopment
Updated2mo ago
Forks3

Languages

Common Lisp

Security Score

95/100

Audited on Jan 6, 2026

No findings