[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Category Errors
- To: common-lisp-object-system@SAIL.STANFORD.EDU
- Subject: Re: Category Errors
- From: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>
- Date: Fri, 24 Jul 87 14:33 EDT
- In-reply-to: <2762944528-5369042@Jenner>
Date: Wed, 22 Jul 87 07:35:28 CDT
From: Patrick H Dussud <DUSSUD%Jenner%ti-csl.csnet@RELAY.CS.NET>
....
I propose the following in order to categorize metaclass programming and
class programming:
CLASS
|
STANDARD-CLASS
|
METACLASS-CLASS
Now, all metaclass objects are instances of METACLASS-CLASS instead of
STANDARD-CLASS. This is to say that standard-class can be defined like:
(defclass STANDARD-CLASS (CLASS)
<slots>
(:metaclass METACLASS-CLASS))
I believe this is a good suggestion. That is, it appeals to my aesthetic
sense, although I have not been able to come up with any specific programming
activities that require it.
STANDARD-CLASS does not support metaclass specific methods like
CLASS-PROTOTYPE, METACLASS-CLASS does.
This part, however, won't work. As I understand it, CLASS-PROTOTYPE has
to work on all classes, because of the way the generic function dispatching
in the initialization protocol is going to work. We still haven't nailed
down the initialization protocol, but I think the part of it we all seem
to agree on already requires all classes to have a prototype.
Similarly, functions like CLASS-DIRECT-SUPERCLASSES are part of metaclass
programming, but that doesn't mean they are only applicable to metaclasses.
They are applicable to all classes.