This library allows creation of hash tables with arbitrary test/hash functions, in addition to the test functions allowed by the standard (EQ, EQL, EQUAL and EQUALP), even in implementations that don't support this functionality directly.
Trivial-Benchmark runs a block of code many times and outputs some statistical data for it. On SBCL this includes the data from time, for all other implementations just the real-time and run-time data. However, you can extend the system by adding your own metrics to it, or even by adding additional statistical computeations.
This package allows flexible specification of package-local preferences.
VAS-STRING-METRICS provides the Jaro, Jaro-Winkler, Soerensen-Dice, Levenshtein, and normalized Levenshtein string distance/similarity metrics algorithms.
This package provides the getopt function to parse command-line options. The options are organized in valid options, other arguments and unknown arguments. Optional Lisp conditions for error situations are also defined.
charje.lambda-list can parse every kind of lambda list defined in the ANSI Common Lisp standard. Parsing yields only one object that has all the parsed parts of the lambda list inside. New kinds of lambda lists can be made too.
It can sometimes be useful to be able to parse chemical compounds in a user-friendly syntax into easy-to-manipulate s-expressions. You also want to be able to go in reverse. You could probably write your own parser — or you could just install the chemical-compounds package.
Parse-Declarations is a Common Lisp library to help writing macros which establish bindings. To be semantically correct, such macros must take user declarations into account, as these may affect the bindings they establish. Yet the ANSI standard of Common Lisp does not provide any operators to work with declarations in a convenient, high-level way. This library provides such operators.
This package provides a canonical way of converting class designators to classes.
This is a small library to help you with managing the Common Lisp docstrings for your library.
An implementation of the exponential backoff algorithm in Common Lisp. Inspired by the implementation found in Chromium. Read the header file to learn about each of the parameters.
THE-COST-OF-NOTHING is a library for measuring the run time of Common Lisp code. It provides macros and functions for accurate benchmarking and lightweight monitoring. Furthermore, it provides predefined benchmarks to determine the cost of certain actions on a given platform and implementation.
This library is an extension of the Common Lisp Object System (CLOS) that allows a compiler to inline a generic function under certain conditions.
Charje.documentation can used to parse Common Lisp docstrings the charje way, or it can be used to create custom docstring parsers. Docstring parsers are composed using mixin classes and initialization methods.
Gray streams is an interface proposed for inclusion with ANSI CL by David N. Gray. The proposal did not make it into ANSI CL, but most popular CL implementations implement it. This package provides an extremely thin compatibility layer for gray streams.
This package provides a standard interface to the various package lock implementations of Common Lisp.
This package provides a configuration library that adds the ability for Lem to manage packages within the user configuration directory.
This library validates superclasses according to a simple substitution model, thereby greatly simplifying the definition of class mixins.
This is a library to abstract away the parsing of Unix-style command-line arguments. Use it in conjunction with asdf:program-op or cl-launch for portable processing of command-line arguments.
This piece of code sets up some reader macros that make it simpler to input string literals which contain backslashes and double quotes This is very useful for writing complicated docstrings and, as it turns out, writing code that contains string literals that contain code themselves.
bubble-operator-upwards is a function that bubbles an operator upwards in a form, demultiplexing all alternative branches by way of cartesian product.
nontrivial-gray-streams is a compatibility system for Gray streams, which is an extension to Common Lisp that makes it possible to implement Common Lisp streams using generic functions.
A heap-based priority queue whose first and foremost priority is speed.
ASDF-FLV provides support for file-local variables through ASDF. A file-local variable behaves like *PACKAGE* and *READTABLE* with respect to LOAD and COMPILE-FILE: a new dynamic binding is created before processing the file, so that any modification to the variable becomes essentially file-local.
In order to make one or several variables file-local, use the macros SET-FILE-LOCAL-VARIABLE(S).