Tiny-CLOS, ported from Scheme to Common Lisp

Tiny-CLOS is a small object system with a metaobject protocol (MOP), similar to the Common Lisp Object System (CLOS). Written by Gregor Kiczales at Xerox PARC, the original implementation is in Scheme. This package provides a (back-)port to Common Lisp.1 Comments of the Scheme implementation have been kept if they still applied.

1. Note that this package is not based on another Common Lisp implementation (by Kiczales) which can be found at: <ftp://ftp.parc.xerox.com:/pub/openimplementations/oopsla93-tutorial/>

Kiczales' Tiny-CLOS/CL implementation fits better into a CL eco-system, while this one is closer to the Scheme implementation it was derived from. One of the bigger visible differences is the lesser role of symbols (for naming classes) in this implementation.


This package is available via git:

    git clone http://www.foldr.org/~michaelw/projects/mw-tiny-clos.git

The original Scheme code is available from <ftp://ftp.parc.xerox.com/pub/mops/tiny/>.

Additional information can also be found at <http://community.schemewiki.org/?Tiny-CLOS>.


Package TINY-CLOS exports all Tiny-CLOS functionality. For convenience, package TINY-CLOS-LISP re-exports all but the CLOS-related Common Lisp vocabulary, and additionally the TINY-CLOS vocabulary. TINY-CLOS-USER is the equivalent of COMMON-LISP-USER.

Tiny-CLOS is meant as tool to study the implementation of MOPs, so the "code is the documentation." User documentation is sparse, potential users are expected to be familiar with CLOS and its MOP. Other sources of information are:


Michael Weber <michaelw@foldr.org>, 2008