I've written a few Common Lisp hacks that you may find useful, most of which are in quicklisp.
- Basic build infrastructure
- General purpose libraries:
- lisp-interface-library, a data structure library in Interface Passing Style.
- fare-utils, a collection of small lisp utilities to make life easier.
- fare-memoization, a memoization library that actually has a sensible design (unlike all the other ones)
- fare-mop, a few trivial CLOS utilities that use the MOP.
- Integration with the Unix command-line:
- cl-launch, an easy-to-use infrastructure to make your Lisp software runnable from the command line.
- command-line-arguments, to parse arguments in command line scripts.
- inferior-shell, a library on top of uiop to more nicely invoke external programs from Common Lisp.
- lisp-invocation, a library to invoke Lisp implementations as external programs.
- Various ASDF extensions:
- poiu an extension to asdf to build in parallel (originally by Andreas Fuchs).
- asdf-dependency-grovel, a utility (originally by Andreas Fuchs) to find the real dependencies in your system.
- asdf-encodings, an extension to asdf to support more encodings than just UTF-8.
- asdf-finalizers, an extension to asdf so macros can defer code to be compiled outside of their expansion.
- asdf-package-system, an extension to asdf, included in ASDF 3.1, to support a one-file, one-package, one-system style like quick-build or faslpath.
- package-renaming, a utility to rename packages around the compilation of some files, allowing for short temporary aliases.
- Document preparation:
- exscribe, my replacement for Manuel Serrano's Scribe and Skribe.
- Syntactic extensions:
- scribble, a reader extension for Scribe-like syntax, used by exscribe.
- fare-quasiquote, a portable implementation of quasiquote that you can use with a pattern-matcher, i.e. optima.
- lambda-reader, a portable way to use λ instead of LAMBDA in your code.
- reader-interception to replace the Lisp Reader with your own when evaluating forms or compiling files.
- fare-csv, a small Text utility to import CSV files.
- lisp-stripper, a utility to count lines of actual CL code in CL, excluding comments, docstrings and multiline strings.
- quux-hunchentoot, thread pooling for hunchentoot using lparallel.
- rpm, simple support for RPM packages from CL.
- single-threaded-ccl, a library to dump single-threaded images of Clozure CL, so you can use fork(2).
- Obsolete bits include:
- xcvb, a build system that failed to displace asdf, but provides a determinism and parallelism. Not quite superseded by asdf 3.
- fare-matcher, a ML-style pattern-matcher that is extensible in a Lisp2 way. Now superseded by optima.
- philip-jose, a "farmer" to manage distributed computations.
- a md5 hash function library.
- an incomplete but hackable skeletal RTF processor.
- CTO, an old CLiki installation from before Cliki 2.
Note that my former CVS site is out of date, and will be phased out. I now use git (previously monotone). I haven't yet setup a web access to my repository, but more of my software is available on common-lisp.net or github.
My main project is not exactly Lisp, and even less CL, though I'll be possibly be using CL to bootstrap it: it's TUNES.
Lisp-related posts on my blog can now be found with the tag "lisp". They notably include, in newer-to-older order:
- Consolidating Common Lisp Libraries
- Interface-Passing Style
- ASDF 2.26 in Quicklisp
- Software Irresponsibility
- EVAL-WHEN considered harmful to your mental health
- Who's responsible for that moving part?
- Why Language Extensibility Matters
- XCVB, growth hormone for Lisp?
- (Lots of ((Irritating, Spurious) (Parentheses)))
- What Makes Lisp Great
- Parsing Considered Harmful
- Getting Students To Do Useful Stuff
- Fun with Fibonacci
Trivia: Faré takes an "é" and is pronounced "Fah-ree".
To contact me, send feed back, etc., see my contact page.