[comp.object] Object packages for Common Lisp?

cmm@creare.UUCP (Chris Morley) (12/03/89)

Can some one recommend a good object-oriented programming
package for Common Lisp (Sun CL or KCL, in particular).

What packages are available? Are they PD or commercial?
Which are the "best" (in terms of facilities, efficiency)?
Any references to documentation that I could get hold of?
Thanks for any information. I would appreciate mailed
responses, but if interest dictates I can summarize.

Chris

...!dartvax!creare!cmm

carm@tove.umd.edu (Richard Chimera) (12/06/89)

In article <1145@creare.UUCP> cmm@creare.UUCP (Chris Morley) writes:
>Can some one recommend a good object-oriented programming
>package for Common Lisp (Sun CL or KCL, in particular).
>
>Chris
>
>...!dartvax!creare!cmm


I've worked with only one such system: CLOS (which may or may not also be
referred to as PCL--Portable Common Loops).  I believe it is public domain
written by some folks at some Texas institution of higher learning.
I don't know where to get documentation about this package, though I do
have a copy of some documentation describing concepts and mechanisms.
If you would like a copy, let me know and I can send it via US mail.

I liked it alot, I thought it did everything I wanted it to do in terms of
inheritance, defining subclasses as combinations of multiple parent classes,
etc.  There were a couple of bugs we had to get around, and it didn't seem
to be incredibly fast, but what do you expect from Lisp (and I was even on
a TI Explorer Lisp machine!).  Overall, I recommend it. 

Rick Chimera,
Human Computer Interaction Library,
University of Maryland

lanning@PARC.xerox.com (Stan Lanning) (12/06/89)

CLOS is a language spec.  PCL is a (partial) implementation of that language.
It is the result of a lot of work by Gregor Kiczales at Xerox PARC, along with
help from a number of others at various institutions.  PCL runs in at least the
following lisps:

 Symbolics 7.2, 7.4
 Coral 1.2
 Lucid 3.0
 IBCL (October 15, 1987)
 Allegro 3.0.1
 Golden Common Lisp 3.1
 EnvOS Medley



CLOS is well on it's way to becoming _the_ OO system for CommonLisp.  The CLOS
spec contains the following comment:

At the X3J13 meeting on June 15, 1988, the following motion was adopted:

"The X3J13 Committee hereby accepts chapters 1 and 2 of the Common Lisp Object
System, as defined in document 88-002R, for inclusion in the Common Lisp
language being specified by this committee..."

--
-- smL

Stan Lanning				lanning@parc.xerox.com
Xerox PARC					or
3333 Coyote Hill Road			lanning.pa@xerox.com
Palo Alto, CA  94304
USA					  (415)494-4880

snicoud@bcsaic.UUCP (Stephen Nicoud) (12/07/89)

   In article <1145@creare.UUCP> cmm@creare.UUCP (Chris Morley) writes:
   >Can some one recommend a good object-oriented programming
   >package for Common Lisp (Sun CL or KCL, in particular).
   >
   >Chris

   I've worked with only one such system: CLOS (which may or may not also be
   referred to as PCL--Portable Common Loops).  I believe it is public domain
   written by some folks at some Texas institution of higher learning.
   I don't know where to get documentation about this package, though I do
   have a copy of some documentation describing concepts and mechanisms.
   If you would like a copy, let me know and I can send it via US mail.
   
   I liked it alot, I thought it did everything I wanted it to do in terms of
   inheritance, defining subclasses as combinations of multiple parent classes,
   etc.  There were a couple of bugs we had to get around, and it didn't seem
   to be incredibly fast, but what do you expect from Lisp (and I was even on
   a TI Explorer Lisp machine!).  Overall, I recommend it. 

CLOS (Common Lisp Object System) "is an object-oriented extension to
Common Lisp...  It is based on generic functions, multiple inheritance,
declarative method combination, and a meta-object protocol."  CLOS will
be part of the ANSI Common Lisp Standard (X3J13).  A copy of the CLOS
specification can be obtained via anonymous ftp from arisia.xerox.com
(in the /pcl/doc directory)

PCL (Portable Common Loops) is an implementation of CLOS designed to be
portable to many different Common Lisps.  PCL was developed by Xerox
PARC.  PCL can be obtained via anonymous ftp from arisia.xerox.com
(/pub/pcl.tar.Z).  A mailing list exists for PCL discussions (send to
CommonLoops-coordinator@xerox.com for a request to be added to the
list or for any PCL-related questions).

Most, if not all, Common Lisp vendors will have (if not already) include
CLOS in their Common Lisp implementations.  You can expect that PCL's
performance would not be as efficient as the native implementations.

Flavors is a popular object-oriented system available in many Lisp
implementations.  Flavors has an extensive user base because of its
pervasive use on Lisp Machines.
-- 
Stephen Nicoud	<snicoud@atc.boeing.com>  uw-beaver!bcsaic!snicoud
Boeing Advanced Technology Center for Computer Sciences