From: David Kriegman
Subject: Flavors and the like
Date: 
Message-ID: <8232@labrea.STANFORD.EDU>
I was wondering if there are any object oriented programming systems 
available for Common LISP.  We're using Symbolics machines right now
and have been using flavors but we'd like our code to be portable to
other common lisp systems (e.g. LUCID and KCL).  I've heard of something
called CLOS but I don't know anything about it.  Is CLOS similar to 
flavors?  What else is out there?

Thanks in advance...

From: Barry Margolin
Subject: Re: Flavors and the like
Date: 
Message-ID: <6826@think.UUCP>
In article <····@labrea.STANFORD.EDU> ······@Whitney.UUCP (David Kriegman) writes:
>I was wondering if there are any object oriented programming systems 
>available for Common LISP.  We're using Symbolics machines right now
>and have been using flavors but we'd like our code to be portable to
>other common lisp systems (e.g. LUCID and KCL).  I've heard of something
>called CLOS but I don't know anything about it.  Is CLOS similar to 
>flavors?  What else is out there?
>
>Thanks in advance...

CLOS is Common Lisp Object System, and it is an object-oriented
extension to Common Lisp that is being designed and developed by
several members of the ANSI Common Lisp committee (much of the work
seems to have been done by Symbolics and Xerox).  It takes most of its
ideas from Symbolics's New Flavors and Xerox's Common Loops.  It is a
functional superset of Flavors, but doesn't use Flavors syntax.  One
of the chief additions is "multimethods", i.e. the ability to choose a
method based on the types of more than one argument to a generic
function.  It also is integrated with the regular Common Lisp type
system, allowing methods to be defined for predefined types; for
example, you can do somthing like:

	(defmethod foo ((arg1 integer) (arg2 integer)) ...)
	(defmethod foo ((arg1 integer) (arg2 float)) ...)
	(defmethod foo ((arg1 float) (arg2 integer)) ...)
	...

You can probably get the current draft documentation on this from
Gregor Kiczales or Danny Bobrow at Xerox.  Sorry, I don't know their
network addresses, but my guess is ······@XEROX.COM would get to him.
Barry Margolin
Thinking Machines Corp.

······@think.com
seismo!think!barmar
From: Preston Bannister
Subject: Re: Flavors and the like
Date: 
Message-ID: <4111@felix.UUCP>
In article <····@think.UUCP> ······@godot.think.com.UUCP (Barry Margolin) writes:
>CLOS is Common Lisp Object System, and it is an object-oriented
>extension to Common Lisp that is being designed and developed by
>several members of the ANSI Common Lisp committee (much of the work
>seems to have been done by Symbolics and Xerox).  
.....
>You can probably get the current draft documentation on this from
>Gregor Kiczales or Danny Bobrow at Xerox.  Sorry, I don't know their
>network addresses, but my guess is ······@XEROX.COM would get to him.

All right, does anyone out there know more about CLOS?  I read the
Common Loops paper in the last OOPS proceedings and was quite
interested.  I'd like to hear more...

========================================
Preston L. Bannister
USENET	   :	ucbvax!trwrb!felix!preston
BIX	   :	plb
CompuServe :	71350,3505
GEnie      :	p.bannister
--
========================================
Preston L. Bannister
USENET	   :	ucbvax!trwrb!felix!preston
BIX	   :	plb
CompuServe :	71350,3505
GEnie      :	p.bannister
From: Jim Kempf
Subject: Common Lisp Object System (was: Re: Flavors and the like)
Date: 
Message-ID: <592@hplabsz.HPL.HP.COM>
In article <····@felix.UUCP>, ·······@felix.UUCP (Preston Bannister) writes:
> >CLOS is Common Lisp Object System, and it is an object-oriented
> >extension to Common Lisp that is being designed and developed by
> >several members of the ANSI Common Lisp committee (much of the work
> >seems to have been done by Symbolics and Xerox).  
> .....
> >You can probably get the current draft documentation on this from
> >Gregor Kiczales or Danny Bobrow at Xerox.  Sorry, I don't know their
> >network addresses, but my guess is ······@XEROX.COM would get to him.
> 
> All right, does anyone out there know more about CLOS?  I read the
> Common Loops paper in the last OOPS proceedings and was quite
> interested.  I'd like to hear more...
> 

In addition to Xerox and Dave Moon of Symbolics, Dick Gabriel, of Lucid, Inc., 
Patrick Dussud, of TI, and myself have been actively involved in
the design. There have been numerous other contributors from the
Common Lisp community who have given occasional input.

An initial specification of the language is available as a Tex
document on parcvax.xerox.com via ftp in pub/pcl/doc, also on
sail.stanford.edu (but I don't know where). Dvi files are available
on parcvax in addition, in case you don't have Tex. Barring that,
you can write to the ANSI X3J13 committee chairman Bob Mathis
at ······@ada20.isi.edu and ask him how to get ANSI X3J13 documents
87-002 and 87-003.

The specification of the language level (programmer interface) was
provisionally accepted by the ANSI X3J13 Common Lisp standardization
committee in Palo Alto this spring. Outstanding issues at the programmer
interface level yet to be resolved are instance initialization, 
automatic propagation of class changes to instances, and compilation
optimization. In addition, the issue of the metaobject protocol (
a kernel language for implementing other object oriented languages)
remains open, but was recognized as seperate from the language itself.

The CLOS subcommittee is currently considering initialization and
propagation of class changes, and some minor issues which were missed
in the first round.

As far as implementation goes, there is a freely distributable implementation
available from Xerox which is an ongoing evolution from the old CommonLoops.
Write to ··························@xerox.com for information on how to
get it. The latest release has maybe the 1/3 most important features of
CLOS implemented, and Gregor Kiczales (principle implementor) is gradually
evolving it toward a full, portable implementation of CLOS, somewhat in
the manner that Spice Lisp was evolved to Common Lisp. There are a
number of implementation specific modifications which need to be made
to the portable version to customize it for particular implementations of
Common Lisp. Most of the major vendors have already done so and are
tracking the portable version. In general, the portable CLOS tends to
be a fairly rigorous test of Common Lisp, and unless you have a full
implementation of Steele, it won't port. However, if you do have a
full implementation, it is usually possible to port in a day to
a couple days.

At OOPSLA in Orlando this fall, there will be a workshop on CLOS 
and probably a paper or two, plus lots of discussion. The design
committee is sure to be there, and we'll be looking for questions
and comments.

	Jim Kempf	·····@hplabs.hp.com
From: Robert Stanley
Subject: Re: Flavors and the like
Date: 
Message-ID: <1218@cognos.UUCP>
In article <····@labrea.STANFORD.EDU> ······@Whitney.UUCP (David Kriegman)
writes:
>I've heard of something called CLOS but I don't know anything about it.
>Is CLOS similar to flavors?  What else is out there?

CLOS is the Common Lisp Object System being developed by the AI group at Xerox
PARC, sitting on the Lyric release of Interlisp, the Common Lisp version.  As
of the last users' group meeting (at AAAI in Seattle), the Lyric release was
due early August.  CLOS itself, while being demonstrated at AAAI, was not a
released product.  It is written in Common Lisp, and the Lyric release appears
to be a fine implementation, but I haven't done more than play briefly under
supervision, and watch a demo.  Certainly worth looking at, but you'll have to
deal with Xerox directly to find out the availability on 'foreign' common lisp
systems.  E-mail me if you want contacts into Xerox.

-- 
Robert Stanley           Compuserve: 76174,3024        Cognos Incorporated
 uucp: decvax!utzoo!dciem!nrcaer!cognos!roberts        3755 Riverside Drive 
                   or  ...nrcaer!uottawa!robs          Ottawa, Ontario
Voice: (613) 738-1440 - Tuesdays only (don't ask)      CANADA  K1G 3N3