SICL-related libraries
We provide a list of projects that were either created as part of the
SICL project, that were extracted and improved from other projects, or
that are used as an essential part of the SICL project.
The projects are located either among the
s-expressionists
repositories or among the repositories at
Robert Strandh's
collection of repositories. The aim is to migrate all libraries
to the s-expressionists site.
Definitions:
-
The term extrinsic means that a library can be loaded into
an existing Common Lisp implementation, without altering the
existing system code of that implementation, and it can be used
and tested as any other externally provided code.
-
The term intrinsic means that a library can be used as part
of a new Common Lisp implementation, or it can be used to replace
the equivalent code in an existing Common Lisp implementation. In
the latter case, the reason for replacing existing code could be
aspects such as performance, maintainability, or documentation.
Libraries related to the standard
In this section, we provide a list of libraries, each of which
provides an implementation of some part of the Common Lisp standard,
typically a single dictionary.
- Khazern: An implementation of the loop macro.
-
Can be used extrinsically or intrinsically.
-
Uses instances of standard classes to represent clauses, so
CLOS is required for this library.
-
Complete, but lacks documentation.
-
Includes an ANSI-test suite, and it passes all tests.
-
Depends on Acclimation.
-
Currently maintained by Tarn W. Burton.
- Eclector: An implementation of the
Common Lisp reader.
-
Can be used extrinsically or intrinsically.
-
Uses instances of standard classes to represent the readtable
and other important objects. Uses generic functions for
configuration. Therefore, CLOS is required for this library.
-
Extensive Texinfo documentation.
-
Complete.
-
Complete test suite using
the fiveam
testing framework.
-
Depends
on alexandria,
Closer
MOP, and
Acclimation.
-
Currently maintained by Jan Moringen.
- Quaviver: Fast and accurate
floating-point input/output
-
Can be used extrinsically or intrinsically.
-
Uses standard classes and generic functions for various
aspects of the library. Therefore, CLOS is required for this
library.
-
Complete, but undocumented.
-
Contains an ANSI-test suite.
-
Depends
on alexandria
and trivial features.
-
Currently maintained by Tarn W. Burton and Paul A. Patience.
- Incless: an implementation of the Common
Lisp printer
-
Can be used extrinsically or intrinsically.
-
Uses standard classes for client configuration. Many of the
standard functions are defined as generic functions.
Therefore, CLOS is required for this library.
-
Complete, but undocumented.
-
Contains an ANSI-test suite.
-
Depends on Quaviver.
-
Currently maintained by Tarn W. Burton.
- Inravina: an implementation of the Common
Lisp pretty printer
-
Can be used extrinsically or intrinsically.
-
Uses standard classes for client configuration, for the
representation of pretty-print instructions, and for dispatch
tables. Therefore, CLOS is required for this library.
-
Complete, but undocumented.
-
Contains an ANSI-test suite with all tests pass.
-
Depends on Incless and
nontrivial-gray-streams.
-
Currently maintained by Tarn W. Burton.
- Invistra: An implementation of the format function.
-
Can be used extrinsically or intrinsically.
-
Uses instances of standard classes to
represent format directives, so CLOS is required for
this library.
-
Complete, but lacks documentation.
-
Includes an ANSI-test suite, and it passes all tests.
-
Depends
on Acclimation, Incless,
and Inravina.
-
Currently maintained by Tarn W. Burton.
- Constrictor: Functions in
the conses dictionary
-
Can be used extrinsically or intrinsically.
-
Does not use standard classes. Defines a single generic
function that could be eliminated.
-
Complete. Extensive documentation strings.
-
Defines compiler macros for functions that can benefit from
them.
-
Contains an ANSI-test suite.
-
This library does not depend on any other systems.
-
Currently maintained by Robert Strandh.
- Anatomicl: Structures
-
Can be used extrinsically or intrinsically.
-
Complete, but undocumented.
-
Contains an ANSI-test suite.
-
Depends
on alexandria and
Closer
MOP. This library represents structures and structure
definitions as instances of standard classes, so CLOS is
required.
-
Currently maintained by Tarn W. Burton.
- Predicament: An implementation of
the Common Lisp condition system
-
Can be used extrinsically or intrinsically.
-
Complete. Extensive documentation strings.
-
No test suite, but extensively tested by being used.
-
This library represents restarts as instances of standard
classes and it defines many generic functions, so CLOS is
required.
-
Currently maintained by Robert Strandh.
- Parcl: An implementation of
the Common Lisp package system
-
Can be used extrinsically or intrinsically.
-
Nearly complete. Extensive documentation strings. Embryonic
Texinfo documentation.
-
No test suite, but extensively tested by being used.
-
Depends on Ecclesia.
This library represents packages as instances of standard
classes and it defines many generic functions, so CLOS is
required.
-
Currently maintained by Robert Strandh.
- Regalia: An implementation of Common Lisp arrays
-
Can be used extrinsically or intrinsically.
-
Nearly complete. Some documentation strings.
-
No test suite.
-
Regalia does not depend on any other system, but this library
represents arrays as instances of standard classes with
generic accessors, so CLOS is required.
-
Currently maintained by Robert Strandh.
- Clostrophilia: An implementation of
the CLOS MOP
-
Can be used only intrinsically for now.
-
Complete. Client code supplies functions controlling
representation, such as standard-instance-access.
Includes code for fast generic dispatch.
-
No test suite, but extensively tested by being used.
-
Depends on Ecclesia.
-
Currently maintained by Robert Strandh.
- Futhark: Functions in the Strings dictionary
-
Can be used only intrinsically for now.
-
Does not use standard classes. Defines string
and stringp as generic functions, but those
definitions could be replaced.
-
Complete. Extensive documentation strings.
-
Defines compiler macros for functions that can benefit from
them.
-
Includes an ANSI-test suite.
-
The intrinsic system has no dependencies. The extrinsic
system depends on the extrinsic system
of Constrictor
-
Currently maintained by Robert Strandh.
- Cyclosis: An implementation of Common
Lisp streams
-
Can be used extrinsically or intrinsically.
-
Depends
on alexandria.
Uses standard classes to define stream classes. Uses generic
functions to define stream functions. So CLOS is required.
-
Needs more external formats added to the transcoding interface
for external formats.
-
Contains some documentation strings.
-
Includes an ANSI-test suite, where everything passes.
-
Currently maintained by Tarn W. Burton.
- Salmagundi: Hash tables
-
Can be used extrinsically or intrinsically.
-
This library does not depend on any other systems, but it uses
standard classes and generic functions, so CLOS is required.
-
Complete, Includes a test suite. Lacks documentation.
-
Currently maintained by Tarn W. Burton.
- Consecution: Sequence functions
-
Can be used extrinsically or intrinsically.
-
Depends
on Acclimation,
alexandria,
Closer MOP,
and
Fast Generic Functions. The sequence functions are
implemented as generic functions.
-
Complete, ANSI test suite. Lacks documentation.
-
Currently maintained by Marco Heisig.
- ctype: An implementation of the Common Lisp type system
-
Can be used extrinsically or intrinsically.
-
This library does not depend on any other external system, but
it represents types as instances of standard classes, so CLOS
is rquired.
-
Complete. Some documentation strings. No test suite, but
tested by being used.
-
Currently maintained by Alex Wood.
- Common macros: nearly all standard macros
-
Can be used extrinsically or intrinsically.
-
Depends on Ecclesia. Generic
functions are used for configuration, so CLOS is rquired.
-
Complete (as much as possible). No test suite, but tested by
being used. No documentation.
-
Currently maintained by Robert Strandh.
- Tazivor: Command-line describe and inspect
-
Can be used extrinsically or intrinsically.
-
Depends on
Closer MOP. Uses standard classes and generic functions,
so CLOS is rquired.
-
Still very basic.
-
Currently maintained by Tarn W. Burton.
Other libraries
In this section, we provide a list of libraries that provide support
for the creation of Common Lisp implementations, but that do not
provide code that is directly related to the Common Lisp standard.
- Trucler: Compile-time lexical environments
-
Can be used extrinsically or intrinsically.
-
Depends on Acclimation.
Uses standard classes and generic functions,
so CLOS is rquired.
-
Native implementation is complete. Documentation strings.
Test suite.
-
Currently maintained by Tarn W. Burton.
- Clostrum: First-class global environments
-
Can be used extrinsically or intrinsically.
-
Depends on Trucler. Uses standard
classes and generic functions, so CLOS is rquired.
-
Complete. Documentation strings. No test suite.
-
Currently maintained by Alex Wood.
- Acclimation: Internationalization
-
Can be used extrinsically or intrinsically.
-
This library does depend on any other library, but it uses
standard classes and generic functions, so CLOS is required.
-
Incomplete, untested.
-
Currently maintained by Robert Strandh.
- Ecclesia: Code utilities
-
Can be used extrinsically or intrinsically.
-
Depends on Acclimation.
-
Incomplete, untested.
-
Currently maintained by Robert Strandh.
- Concrete Syntax Tree: Wrapper for S-expressions
-
Can be used extrinsically or intrinsically.
-
Depends on Acclimation.
-
Complete. Contains tests using randomly generated
expressions. LaTeX documentation.
-
Currently maintained by Jan Moringen.
- Iconoclast (AST): AST
representations of all special forms and all standard macro forms
-
Can be used extrinsically or intrinsically.
-
This library does not depend on any other library, but it uses
standard classes and generic functions, so CLOS is required.
-
Complete. No test suite, but tested by being extensively used.
-
Currently maintained by Robert Strandh.
- Iconoclast (builder): Build an
AST hierarchy from an S-expression
- Iconoclast (walker):
Configurable traversal function for AST hierarchies.
-
Can be used extrinsically or intrinsically.
-
Depends-on Iconoclast (AST).
-
Complete. No test suite, but tested by being extensively used.
-
Currently maintained by Robert Strandh.
- Iconoclast (transformations):
Several transformations and simplifications of AST hierarchies
-
Can be used extrinsically or intrinsically.
-
Depends-on Iconoclast (walker).
-
Complete. No test suite, but tested by being extensively used.
-
Currently maintained by Robert Strandh.
- Common boot (builder):
Finalize Iconcolast AST with respect to a first-class global
environment
- Common boot
(ast interpreter): Evaluate ASTs using an interpreter.
- Common boot
(HIR): Implementation-independent High-level Intermediate
Representation as control-flow graph
-
Can be used extrinsically or intrinsically.
-
This library has no dependencies.
-
Complete. No test suite, but tested by evaluators.
-
Currently maintained by Robert Strandh.
- Common boot
(AST to HIR): Turn an AST into High-level Intermediate Representation
- Common boot (HIR
evaluator): Evaluate a HIR
(High-level Intermediate Representation) graph.
robert.strandh@gmail.com