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

Goals



I basically agree with Moon's views on what level of stuff should go
into the white pages (or some semi-standard: you don't have to do this,
but if you do you should do it this way), and therefore what this group
needs ultimately to decide.  My somewhat rambling message of last night
was meant only to indicate that even this is not an easy problem for
several reasons:

1. There is great demand for the best possible substrate for a flavor
system.  Many of the Lisp Machine people understandably oppose a
mechanism that would slow down flavors even a little bit in the interest
of generality, or that would not support some of the more complex
features of flavors.

2. Any kernel needs some sort of method-lookup support that can handle
multiple strands of inheritance, some sort of mechanism for accessing
instance variables from methods, probably a separate instance data type
for cleanliness (instances could in principle be built as structures,
but we probably want them to print differently, etc.), and maybe some
sort of low-level mechanism for efficient implementation of active values.

3. Even in that small set of mechanisms there is some difficulty.  For
example do instance variables look to a method writer like lexical
variables, special variables, or something else?  To what lengths do we
want to go to support late binding: methods referencing instance
variables when the instance-defining flavors or classes have not yet
been defined or might change?  And so on.

Anyway, my point is that even if we want to confine our final output to
a single set of low-level non-portable mechanisms, we may need to
discuss the higher-level issues in order to understand the range of
things that need to be supported, and to see if a consensus exists on
any of this stuff.  If everyone agrees that instance variables in self
should look like lexical variables bound at the time of a send, then
we've got a useful constraint; if someone deeply believes that these
things should look some other way, then we have to think about whether
we can accommodate both views.

Probably the best way to make progress (after the initial goal-setting
period) is to begin circulating proposals for the low-level stuff and to
see where the sticking points really are.  A specific proposal tends to
crystallize the argument in a way that a more general discussion will
not.

-- Scott