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

Re: Instance variables



    Date: 19 Nov 84 14:35 PST
    From: Kahn.pa@XEROX.ARPA

    Sorry I wasn't too clear.

Okay, let's try again.

      [- Would Flavors people please discourse upon the difference between
    the
	3600 and CADR implementations of flavors, with respect to the point
    that
	in the CADR the variable SELF is special but in the 3600 it is
    lexical.]
     --- I didn't know that self was lexical on the 3600.  The question is
    how could one implement "self" without hooks into Common Lisp.  Is
    "self" a hidden instance variable?  Can one bind it or set it explictly?
    (This may be useful for explicit delagation or forwarding of messsages.)

SELF is just an ordinary variable on the 3600.

     [ - Do we want instances of flavors to be usable as functions, with
    FUNCALL
	and APPLY, or do we want them only to be invocable with SEND?]
    --- This is related to the qustion of implementation.  Isn't it the case
    that on a 3600 FUNCALL and APPLY bind "self" or is this no longer the
    case?  If it is then perhaps Common Lisp needs a hook to accomplish
    this.

SELF is just an ordinary variable on the 3600.
 
      [- What parts of the mechanism for accessing instance variables
    supplied
	by the proposed Common Lisp object-oriented-programming kernel
    should
	be hidden, and what parts should be exposed to the portable
    programmer?]
    ---This is an interesting question though I wasn't asking it.

I think you should be, especially since your other questions seem to
presuppose a particular implementation of Flavors.  There are many ways
to implement Flavors, and which one is appropriate for a particular
machine depends on characteristics of that machine and on what the
implementors want to do.  That's why I believe the proposed Common Lisp
object-oriented-programming kernel should be at a higher level of
abstraction and should not commit itself to a particular mechanism, such
as binding a special variable named SELF or anything else.  It should be
possible to implement that kernel in different ways on different
systems.

I'm afraid this discussion is pretty vacuous since it's not focussed on
a specific proposal.  I wish I had time to write a treatise on the different
ways to implement Flavors, with four or five case studies, but I don't.

      [- Would Flavors people please discourse upon the virtues and/or
    uglinesses
	of their DEFUN-METHOD feature.]
    ---This more related to what I was asking a couple of weeks ago.
    Should instance variables look like Common Lisp variables and what's
    involved in making that work?  

It isn't Flavors if they don't.  Handerson's proposal discusses what
is involved in making that work.