[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Status Of CL Object Oriented Group?

The group has been quiet for about a week.  Maybe people don't have much
more to say about instance variables.  I'll try to summarize soon what I
think people did say about it.

A new issue we can discuss is the interface between Lisp and objects.
Some of the issues here need to be answered even if we take the approach
of specifying what hooks and primitives need to be in Common Lisp so
everyone can implement their favorite object system.

** How should Lisp send a message?  **
Should this be standardized?  If so should the selector be quoted?  Do
people like the idea of a macro named "send"?

** What should happen if a message is sent to a Lisp datatype? **
Should this be an error?  Should there be a way to define methods for
Lisp datatypes?  If so, should they be associated with the name of the
data type or what?  
(Loops is in the process of experimenting with this now and we are
finding it very useful.  It also permits one to write functions that
work equally well on objects as lists, etc. )
If the overhead of the send to a Lisp datatype can be compiled away
then perhaps lots of system code should send messages even when by
default the objects are just lists or arrays.  I/O streams and windows
are examples where this probably makes sense.

** What should happen if a Lisp primitive is called with an object as an
argument?  Should car and cdr send messages to their args in such a
case?  What about plus? print?  This issue is important because one
sometimes writes objects to implement some exotic kind of number or list
and wants these objects to integrate well with existing code.  What
should type-of of an object return?  What should eval of an object do?

     ----- End Forwarded Messages -----