Command-Line-Args provides a main macro (command
) that wraps a defun
form and creates a new function that parses the command line arguments. It has support for command-line options, positional, and variadic arguments. It also generates a basic help message. The interface is meant to be easy and non-intrusive.
This is a library for reading semi-raw user input from terminals. Semi-raw as in, we can't detect if the user pressed the Control
key alone, and the function keys are a mystery. What is supported, however, is:
Regular characters
Control+[key]
Alt+[key]
Control+Alt+[key]
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 compute
ations.
One of the many things that didn't quite get into the Common Lisp standard was how to get a Lisp to output its call stack when something has gone wrong. As such, each Lisp has developed its own notion of what to display, how to display it, and what sort of arguments can be used to customize it. trivial-backtrace
is a simple solution to generating a backtrace portably.
The canonical way to determine the size of a file in bytes, using Common Lisp, is to open the file with an element type of (unsigned-byte 8) and then calculate the length of the stream. This is less than ideal. In most cases it is better to get the size of the file from its metadata, using a system call.
This library exports a single function, file-size-in-octets. It returns the size of a file in bytes, using system calls when possible.
This package allows flexible specification of package-local preferences.
This package provides a simple yet powerful value inheritance scheme.
This StumpWM module can take screenshots and store them as PNG files.
This package provides a shim between Python3 (specifically, the CPython implementation of Python) and Common Lisp.
This package provides a functionality augmenting Hunchentoot error pages and logs with request and session information.
This library contains a collection of machine learning algorithms for online linear classification written in Common Lisp.
PARSER-COMBINATORS is a library implementing monadic parser combinators in Common Lisp, similar in concept to Haskell Parsec system.
VAS-STRING-METRICS provides the Jaro, Jaro-Winkler, Soerensen-Dice, Levenshtein, and normalized Levenshtein string distance/similarity metrics algorithms.
Common Lisp implementation of Graham Cormode and S. Muthukrishnan's Effective Computation of Biased Quantiles over Data Streams in ICDE’05.
Temporal-Functions adds tlambda & tdefun along with a small collection of related funcs and macros. tlambda is a lambda with an internal concept of time.
CL-DATA-STRUCTURES is a Common Lisp library providing a portable collection of mutable and immutable data structures (dictionaries, sets, queues, sequences) and algorithms.
This package provides an enhanced EVAL-WHEN
macro that supports a shorthand for (eval-when (:compile-toplevel :load-toplevel :execute) ...)
, addressing concerns about verbosity.
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.
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.
This library enables path variables in networking routes when using Hunchenissr for Common Lisp. If a part of the path (between two slashes) starts with a question mark (?), that symbol (without question mark) will be bound to whatever value was in the same place in the URL (as a string).
Filtered functions provide an extension of CLOS generic function invocation that add a simple preprocessing step before the actual method dispatch is performed and thus enable the use of arbitrary predicates for selecting and applying methods. See http://www.p-cos.net/documents/filtered-dispatch.pdf for a paper that introduces and explains filtered functions in detail.
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 library lets you build a metaclass which in turn lets you specify extra slot options in its classes. Options may be easily inspected and custom inheritance may be set up. The Meta-Object Protocol (MOP) is used for the implementation - through closer-mop
. Some convenience function for processing slot options are also available.
Possible use case: you want to automatically set up some definitions based on some slots, but you want to have control over it right in the class definition.
Keyboard layout switcher for StumpWM