Meroon: An Object-Oriented Extension to Scheme

Meroon is a CLOS-like object-oriented extension to Scheme written by Christian Queinnec of Paris VI. Meroon has very specific design goals: single inheritance for fast access to object fields; generic functions with multi-methods (multiple dispatch); a compile-time meta-object-protocol (Meroon is written in Meroon, and its behavior can be modified at the time a program using it is compiled or loaded); fields can be declared mutable, immutable, or maybe-uninitialized, or they can have an initializer; so-called "poly-field"s can have a variable number of elements; special macros simplify the construction of objects (instantiate, co-instantiate, with-co-instantiation, duplicate, modify, instantiate-from).

Christian asked me to take over the maintenance of Meroon, and I agreed. I have some limited goals for Meroon (although it's not clear that I have the skills to implement them all):

So I'm distributing Meroon in its current form. The source tarball contains a script make_meroon that builds Meroon for Gambit on Unix-like systems (Linux, *BSD, Mac OS X, etc.). Gambit-specific versions of Meroon source files are given the extension .gsc instead of .scm, so it should be possible to build Meroon in Christian's original way for other Scheme systems. The software is distributed under the Lisp Lesser General Public License (LLGPL), version 2.1, to which Christian has agreed and which I feel is necessary because Meroon generates code from class definitions, etc.

I'm also soliciting help for various aspects of improving Meroon according to the criteria above, or other criteria as you see fit.

If you have questions or suggestions about how to improve Meroon, please send me e-mail.

Bradley Lucier's home page