Skip to content

Symbolics/alexandria-plus

Repository files navigation

Contributors Forks Stargazers Issues MS-PL License LinkedIn


Alexandria+

Alexandria+ is a slightly less conservative set of utilities, similar in spirit to alexandria.
Explore the docs »

Report Bug · Request Feature · Reference Manual

Table of Contents

  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Resources
  6. Contributing
  7. License
  8. Contact

About the Project

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:

Built With

  • No dependencies

Getting Started

To get a local copy up and running follow these steps:

Prerequisites

An ANSI Common Lisp implementation. Developed and tested with SBCL, Genera and CCL.

Github

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:

  1. Clone the repository
    cd ~/common-lisp/ &&
    git clone https://github.com/Symbolics/alexandria-plus.git
  2. Reset the ASDF source-registry to find the new system (from the REPL)
    (asdf:clear-source-registry)
  3. Load the system
    (asdf:load-system :alexandria+)

Usage

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.

Roadmap

See the open issues for a list of proposed features (and known issues).

Resources

Contributing

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.

License

Distributed under the MS-PL License. See LICENSE for more information.

Contact

Project Link: https://github.com/Symbolics/alexandria-plus

About

A conservative set of extensions to Alexandria utilities

Topics

Resources

License

Stars

Watchers

Forks