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

Re: Sun Opposition To Chapter 3 Hereby Tendered

Sorry for the long delay in responding to your message.  As you know, I
have had a number of private conversations with people about this, and
it has take some time to consider everyone's opinion.

I think your concerns about the state of CLOS standardization are valid.
I agree that it is important to have something solid and well understood
as soon as possible.  I also believe that we have a mandate from the
user community to include a metaobject protocol. Taken together, these
imply that we must find a way to reconcile our desire not to standardize
on research with our desire to include some sort of metaobject protocol.

By talking with everyone in the group, I have developed a proposal for
how to direct our efforts to best achieve these goals.  The rest of this
message outlines that proposal.

We should start by splitting chapter 3 into two parts.  We can decide
what to call them later, but for now I will call them Part I and Part
II.  Part I will include the material from chapter 3 that we understand
the best and about which there is the least contention.  Part II will be
the material from chapter 3 that we are not yet in agreement on.

Part I will include the initialization and reinitialization protocol
for all the kernel classes, as well as the "reader" or "query" functions
for those kernel metaobjects.  This corresponds to about the first
twenty pages of the existing chapter 3.

Part II will include the actual evaluator protocols.  This includes the
slot access protocol, method lookup protocol, slot inheritance protocol

Our plan will be to submit a final version of Part I at the September
meeting.  We will ask X3J13 to be ready to vote on it at that meeting.
In order to do that, we will need to submit a close to final version of
it at (but not much before) the June meeting.  This material is well
enough understood that there shouldn't be a problem asking X3J13 to vote
on it at that time.

In the meantime, we will continue to work on Part II.  We will inform
X3J13 that we intend to try and produce a final version of this material
before the January meeting.  If we conclude that we can't produce such a
document for that meeting, at least we will have standardized on Part I.
If we produce such a draft, but X3J13 doesn't accept it, there will at
least be a document from which vendors who want to supply some sort of
metaobject protocol can start.

Perhaps the most important part of this proposal is that we must be sure
that our work on Part II is well grounded.  In part, this means that we
should each base our contributions on implementations of similar
functionality we are familiar with.  For my own part, this will mean
that I will implement whatever we develop over the summer in PCL.  This
will have the benefit of debugging our ideas, and demonstrating to X3J13
that what we are proposing is implementable.