Alexandria+ is a slightly less conservative set of utilities, similar in spirit to alexandria.
Explore the docs »
Report Bug
·
Request Feature
·
Reference Manual
We generally follow two of the three guiding principles of Alexandria:
-
Utilities, not extensions: Alexandria will not contain conceptual extensions to Common Lisp, instead limiting itself to tools and utilities that fit well within the framework of standard ANSI Common Lisp. Test-frameworks, system definitions, logging facilities, serialization layers, etc. are all outside the scope of Alexandria as a library, though well within the scope of Alexandria as a project.
-
Conservative: Alexandria limits itself to what project members consider conservative utilities. Alexandria does not and will not include anaphoric constructs, loop-like binding macros, etc.
-
Portable: Alexandria limits itself to portable parts of Common Lisp. Even apparently conservative and useful functions remain outside the scope of Alexandria if they cannot be implemented portably. Portability is here defined as portable within a conforming implementation: implementation bugs are not considered portability issues.
Manpower does not permit testing on all Lisp implementations, so we target Genera, SBCL and CCL.
An additional guiding principal is that we only add functionality that is not already available in UIOP
, OSICAT
or alexandria
, but required for multiple projects that we work on.
Other utilities libraries include:
- No dependencies
To get a local copy up and running follow these steps:
An ANSI Common Lisp implementation. Developed and tested with SBCL, Genera and CCL.
To make the system accessible to ASDF (a build facility, similar to make
in the C world), clone the repository in a directory it knows about. By default the common-lisp
directory in your home directory is known. Create this if it doesn't already exist and then:
- Clone the repository
cd ~/common-lisp/ && git clone https://github.com/Symbolics/alexandria-plus.git
- Reset the ASDF source-registry to find the new system (from the REPL)
(asdf:clear-source-registry)
- Load the system
(asdf:load-system :alexandria+)
The alexandria+
source code is organised the same as the alexandria
source. For example the alist and plist utilities are in lists.lisp
in both alexandria
and alexandria+
. It is intended to be used alongside alexandria
, e.g. (:use :alexandria :alexandria+)
For more examples, please refer to the Documentation.
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated. Please see CONTRIBUTING.md for details on the code of conduct, and the process for submitting pull requests.
Distributed under the MS-PL License. See LICENSE for more information.
Project Link: https://github.com/Symbolics/alexandria-plus