[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Random metaclasses for CL types
Date: Fri, 19 May 89 07:23:58 PDT
From: Jon L White <jonl>
re: [The "holy" types of 88-002R, pages 1-16 and 1-17] I want to define it
so that a program that assumes that all specified types are of metaclass
BUILT-IN-CLASS is a conforming program and will work in all implementations
regardless of what the actual metaclass is. Can we come up with a wording
that clearly and unambiguously expresses that idea?
Well, foo, this loosely worded specification implies that the metaclasses
of the "holy" types are in fact subclasses of BUILT-IN-CLASS. And that's
precisely what I thought you were trying to avoid prescribing.
I disagree. It means that the external protocol supported by the
implementation dependent metaclass needs to cover the capabilities
BUILT-IN-CLASS. This can be achieved independently of the taxinomy of
metaclasses. I don't think we want the users to rely on the taxinomy of
metaclasses at this point.
The example discussed in previous mail -- STANDARD-FUNCTION-CLASS (?) --
wasn't shown as a subclass of BUILT-IN-CLASS precisely because Chap 3
requires it to be a direct sublcass of STANDARD-CLASS instead. I wouldn't
be against changing this and simply saying, quite up-front, that all
implementation-specific metaclasses covering the "holy" types must
be subclasses of BUILT-IN-CLASS (i.e. those which are not of metaclass
STANDARD-CLASS or STRUCTURE-CLASS).
I would be against it.
Perhaps we could investigate the possibilities of having a broad enough
definition for BUILT-IN-CLASS so that your flavor-implemented types could
be covered? I don't see much in 88-002R that overly constrains built-in
classes.
I would be against having Flavor's metaclass be a subclass of BUILT-IN-CLASS.
Flavors are much closer to STANDARD-CLASS than they are from BUILT-IN-CLASS.
Since no one objected to the subclass links in my earlier mail , I take it
that the following subclass graph is obvious [regardless of the metaclass
links]?
FUNCTION
/ | \
/ | \
/ | \
/ | \
/ | \
/ | \
/ | \
GENERIC-FUNCTION {OtherFuns} {STANDARD-FUNCTION}
\ / | \
\ / | \
\ / | \
\ / | \
\ / | \
\ / | \
\ / | \
STANDARD-GENERIC-FUNCTION {Hunoz?} {PCL-Constructors}
As far as the standard is concrned, we are interested only in:
function
|
generic function
|
standard-generic-function
and that's OK with me.