From: Jonas Mellin
Subject: CLOS Summary (LONG)
Date: 
Message-ID: <840@his.UUCP>
Thanks to the following person I received information about CLOS:

        ···@ihlpf.att.com (Lawrence G Mayka)
	······@news.think.com (Barry Margolin, Thinking Machines Corp)
	·····@pyrmania.oz.au (Major)
	···@ai.mit.edu (Thomas M. Breuel)
	Tim Bradshaw <···@cstr.ed.ac.uk>

Here follows a summary of the replies and a few comments of my own:

>I have heard that Common Lisp Object System should be a part of the
>Common Lisp standard. I have tried to find it in various versions of
>Common Lisp implementations and I have not found it. 

From: ···@ihlpf.att.com (Lawrence G Mayka)

      CLOS has been voted into the draft ANSI Common Lisp standard,
      and is defined/described in Guy Steele's reference work, "Common 
      Lisp: the Language - Second Edition," now available in
      (American) bookstores.

The X3J13 Document 88-002R describes the specification of CLOS. There
is also a book about CLOS called 'Object-Oriented Programming in
COMMON LISP' by Sonya E. Keene, published by Addison Wesley


>In which implementations of CL is CLOS a part of CL?

From: ······@news.think.com

	Symbolics Genera 8.0, being released in a month or so,
	includes CLOS. Lucid 4.0, currently in beta test, includes
	CLOS. 	

From: ···@ihlpf.att.com (Lawrence G Mayka)

      Essentially all commercial Common Lisp vendors are committed to
      supporting the CLOS standard; but if you want to know which
      implementations offer genuine, integrated, optimized CLOS
      *today*, I can think of the following: 

	       	LispWorks from Harlequin
		Delphi CL from Delphi
		Procyon CL from ExperTelligence
		Ibuki CL from Ibuki
		TI CL from Texas Instruments 
		IIM CL from Integrated Inference Machines
		Elis CL from Nippon Telegraph and Telephone

	Several caveats apply here, though:

	- I am not certain that every implementation listed
	has *fully* implemented and *significantly* optimized
	their CLOS.  At the least, the vendors listed above
	support their CLOS implementation. 

	- The three most "visible" American CL vendors -
	Symbolics, Franz, and Lucid - will probably release
	their own integrated CLOS implementations within the
	next six months.  These three vendors are also the
	ones best supported by the Portable CLOS (PCL)
	available for free from Xerox PARC. 


>Any personal views of CLOS compared to Flavors.

From: ······@news.think.com

	CLOS uses generic functions (like New Flavors) rather than
	message sending, so it fits in with Lisp better (you don't
	always need to know that a particular operation is a generic
	operation).  CLOS allows methods to be selected based on the
	types of more than one argument, not just the first argument.
	CLOS allows methods to be specialized on normal types, not just 
	classes (e.g. you can write methods for INTEGER, NUMBER, SYMBOL, etc.).

	CLOS can be a little more cumbersome to program, though.
 	Since methods aren't associated with a particular class they
	must use the WITH-SLOTS.

From: ···@ihlpf.att.com (Lawrence G Mayka)

      CLOS is more powerful than either Old or New Flavors, but its
      paradigm of method *applicability*, rather than the method
      *ownership* paradigm of more traditional OOPLs, takes some
      getting used to.  CLOS does, however, beautifully integrate the
      object-oriented and functional programming paradigms.  

|>Is there a public domain version? How can I get it?

From: ······@news.think.com

	There's a public, portable implementation of most of CLOS,
	called PCL, available on Arisia.Xerox.COM.  Macintosh Allegro
	CL currently includes this, and the version to be released
	later this year will include a nativ CLOS implementation.

From: ···@ihlpf.att.com (Lawrence G Mayka)

      PCL from Xerox PARC.  You can get it via anonymous FTP from
      arisia.xerox.com  as  /pcl/tarfile . 

From: Tim Bradshaw <···@cstr.ed.ac.uk>

      PCL, a free partial implementation of CLOS, is available by
      anonymous ftp from  arisia.xerox.com.  The current version
      (Rainy day) is known (by me) to compile and run on Franz Allegro
      CL, and Xerox Medley.  I failed to compile it on Austin KCL (but
      I didn't try hard). 

From: ·····@pyrmania.oz.au (Major)

      PCL (Portable Common LOOPS) from Xerox is free and is slowly
      being permuted into CLOS.

From a document found in the PCL I found the following text:

     Portable CommonLoops (PCL) started out as an implementation of
     CommonLoops written entirely in CommonLisp.  It is in the process
     of being converted to an implementation of CLOS.  Currently it
     implements a only a subset of the CLOS specification.

     Unfortunately, there is no detailed description of the
     differences between PCL and the CLOS specification, the source
     code is often the best documentation.  

     Currently, PCL runs in the following implementations of
     Common Lisp:

	    EnvOS Medley
	    Symbolics (Release 7.2)
	    Lucid (3.0)
	    ExCL (Franz Allegro 3.0.1)
	    KCL (June 3, 1987)
	    AKCL (1.86, June 30, 1987)
	    Ibuki Common Lisp (01/01, October 15, 1987)
	    TI (Release 4.1)
	    Coral Common Lisp (Allegro 1.2)
	    Golden Common Lisp (3.1)
	    CMU
	    VAXLisp (2.0)
	    HP Common Lisp
	    Pyramid Lisp

A couple of methods to get PCL:

*** Arpanet Access to PCL ***

The primary way of getting PCL is by Arpanet FTP.

The files are stored on arisia.xerox.com.  You can copy them using
anonymous FTP (username "anonymous", password "anonymous"). There are
several directories which are of interest:

/pcl

This directory contains the PCL sources as well as some rudimentary
documentation (including this file).  All of these files are combined
into a single Unix TAR file.  The name of this file is "tarfile".

Once you have untared the tarfile, the following files are of special
interest: 

readme.text   READ IT

notes.text    contains notes about the current state of PCL, and some
              instructions for installing PCL at your site.  You should
              read this file whenever you get a new version of PCL.

get-pcl.text  contains the latest draft of this message


/pcl/doc

This directory contains TeX source files for the most recent draft of
the CLOS specification.  There are TeX source files for two documents
called concep.tex and functi.tex.  These correspond to chapter 1 and 2
of the CLOS specification.


/pcl/archive

This directory contains the joint archives of two important mailings
lists:

  ···········@Xerox.com

    is the mailing list for all PCL users.  It carries announcements
    of new releases of PCL, bug reports and fixes, and general advice
    about how to use PCL and CLOS.

  ·························@Sail.Stanford.edu

    is a small mailing list used by the designers of CLOS.

The file cloops.text is always the newest of the archive files.

The file cloops1.text is the oldest of the archive files.  Higher
numbered versions are more recent versions of the files.

*** Using the BITFTP server at Princeton ***

For people who can't FTP from Internet (Arpanet) hosts, but who have
mail access to the BITNET, there exists a way to get the PCL files using
the BITFTP service provided by Princeton Univerity.  If you know exactly
where to find the files that interest you, this is quite easy.  In
particular, you have to know:

 * the Internet host name of the host that maintains the files (such
   as `arisia.Xerox.COM')
 * the directory where to find the files, relative to the root of the
   FTP tree (i.E. `pub')
 * whether the files are binary or ASCII text.
 * the names of the files (say `pcl90.tar.Z' and `pcl90.README')

To do this, send a message to ······@PUCC (or ······@PUCC.BITNET if you
aren't on BITNET itself).  The subject line of the message will be
ignored.  The text (body) of the message should be:

        FTP arisia.xerox.com UUENCODE
        CD pub
        CD pcl
        BINARY
        GET tarfile
        QUIT

Then you wait (probably for about a day when you are in Europe) and
eventually you will receive E-Mail messages from ······@PUCC (or
BITFTP2%PUCC...) with subject lines like `uudecoded file tarfile part
13'.  Then you have to carefully concatenate the contents of ALL of
these files in the correct order.

  Note: The following works on our Suns and should work on any
  Berkeley UNIX machine.  If you don't have the `compress' or `zcat'
  program, you can get a free version (with MIT's X Window System
  distribution, for example).

The resulting file can be `uudecode'd like this:

        dagobert% uudecode name-of-the-assembled-file

This will give you a file tarfile.Z (it may actually have a different
name; then you may want to rename it in the first place).  The `.Z' at
the end means that the file you now have is compressed.  You can
uncompress it with `uncompress tarfile.  You can untar the uncompressed
file with `tar xvf tarfile.  

This will write all files in the tarfile to the current directory.

If you want to know more about the BITFTP service, send a letter to
·······@PUCC' that contains the single line `HELP'.

*** Xerox Internet Access to PCL ***

Xerox XNS users can get PCL from {NB:PARC:XEROX}<PCL>



Send any comments, bug-reports or suggestions for improvements to:

   ··············@Xerox.com

Send mailing list requests or other administrative stuff to:

  ···················@Xerox.com


HAPPY HACKING
Disclaimer: Even a blind man may know how to C.
    _____________________________________________
   /      /  /    /   /\  /    /      /| /|	|E-mail: ·····@his.se
  /      /--/	 /    \  /    /	     / |/ | 	|UUCP:   ...!sunic!his!jonas
 /      /  /	/    \/ / /  /      /     |	|Phone:  +46 500 77646
/______________________/  \_/ onas /      |ellin|Fax:    +46 500 16325
Snailmail: Jonas Mellin,Hogskolan i Skovde, Box 408, 541 28 Skovde, Sweden