From: John Matthews
Subject: Delegation library
Date: 
Message-ID: <C0CrrK.MED@vcd.hp.com>
Is there a library that would allow me to write code that
uses the prototype/delegation model of OOP? Preferably
it would co-exist with CLOS, but that is not necessary.

Also, how does one get access to discussions on 
prototyping/delegation issues? I would particularly
like to learn about good design heuristics and scenarious
where using delegation is simpler than using conventional
class-based inheritence.

Thanks,

John Matthews
Hewlett-Packard.

From: Koenraad de Smedt
Subject: Re: Delegation library
Date: 
Message-ID: <1993Jan7.130208.21582@rulway.LeidenUniv.nl>
You ask:
   Is there a library that would allow me to write code that
   uses the prototype/delegation model of OOP? Preferably
   it would co-exist with CLOS, but that is not necessary.

CommonORBIT (also called CORBIT) is an object-oriented extension
of Common Lisp.  It uses a prototype (classless) model of OOP,
is easy to use and has nevertheless many sophisticated features
found also in KL-ONE type languages.

CommonORBIT is a Common Lisp reimplementation of ORBIT, which was 
originally conceived by Luc Steels around 1981-1983.  It was way
ahead of its time, among other things because it was a neat
applicative approach using generic functions, which were later 
also used in CLOS.

Because of its delegation-based rather than class-based inheritance,
CommonORBIT offers extreme flexibility to define and change 
practically anything at run-time.  Because of the generic functions,
it fits well into regular Lisp code.  It can co-exist with CLOS
but remains completely separate.

Koenraad de Smedt  (Leiden University)
From: Koenraad de Smedt
Subject: Re: Delegation library
Date: 
Message-ID: <1993Jan8.124741.8780@rulway.LeidenUniv.nl>
Some people have asked me how CommonORBIT can be obtained.

[Note: one of these people is John Matthews (··@hpvcljx.vcd.hp.com), but
a message to him bounced; John Matthews, please check your mail system]

The source code of CommonORBIT is in the public domain, but is not
publicly available by means of FTP.  People who are interested are advised to
contact me, and I will send the code by e-mail.

Koenraad de Smedt  (Leiden University)
From: Brad Myers
Subject: Re: Delegation library
Date: 
Message-ID: <C0HwuI.BIo.2@cs.cmu.edu>
In article <··········@vcd.hp.com> ··@vcd.hp.com (John Matthews) writes:
>Is there a library that would allow me to write code that
>uses the prototype/delegation model of OOP? Preferably
>it would co-exist with CLOS, but that is not necessary.
>


The Garnet user interface development environment includes a 
prototype-instance object system called KR, which has been widely used.
You can use it as a "regular" delegation system, or else you can also use
the constraint satisfaction, which replaces many methods.  You can use KR
without using the rest of Garnet, and KR will run on any Common Lisp.  It 
has been heavily optimized to be efficient.  It can co-exist with CLOS,
and there are no name conflicts if you :USE both.

KR, like the rest of Garnet, is free.  To get KR, ftp to
a.gp.cs.cmu.edu (128.2.242.7).  When asked to log in, use "anonymous", and
your name as the password.  Then change to the garnet directory (note the
double garnet's) and get the README explanation file:
	ftp> cd /usr/garnet/garnet/
	ftp> get README
Now, follow the directions in the README file.


Brad A. Myers
School of Computer Science
Carnegie Mellon University
5000 Forbes Avenue
Pittsburgh, PA  15213-3891
(412) 268-5150
FAX: (412) 681-5739
···@a.gp.cs.cmu.edu