Article View: comp.lang.clos
Article #698Re: Metaclass inheritance?
From: Fernando Mato Mira
Date: Mon, 11 Jan 1993 10:04
Date: Mon, 11 Jan 1993 10:04
34 lines
2395 bytes
2395 bytes
In article <GREGOR.93Jan8173751@tracer-bullet.parc.xerox.com>, gregor@parc.xerox.com (Gregor Kiczales) writes:
>
> This is a nice hack, and it is probably good enough to get some work
> done, but I guess I should point out that it is illegal, in portable
> code, according to the rules on pages 142, 143 and 144 of AMOP.
> Specifically the rule that:
>
> Any method defined by a portable program on a specified generic
> function must have at least one specializer that is neither a
> specified class nor an {\bf eql} specializer whose associated
> value is an instance of a specified class.
>
> The basic problem with methods like this is that two programs, written
> separately, which both have methods like this, will interfere with each
^^^^^^^^^
> other if they are loaded together. That is why this rule is there. We
That's why I didn't like using an :around method. Now you know what I meant
when I said that "ENSURE-CLASS-USING-CLASS is not great to specialize".
Maybe specifying that the last action performed by ENSURE-CLASS-USING-CLASS is to call another function with the
same lamdba list, say FINALIZE-ENSURE-CLASS-USING-CLASS, (&allow-other-keys poses a problem for termination, so a
recursive call is out) but passing the newly created class as the class argument, and allowing to use CHANGE-CLASS in
this procedure would solve the problem.
One could see the class being defined as being "forward referenced" until DEFCLASS returns to avoid feeling "guilty" for allowing another exception to
the CHANGE-CLASS rule for class metaobjects.
--
Fernando D. Mato Mira
Computer Graphics Lab "Bury GIFs!! Get JPEGed!!!"
Swiss Federal Institute of Technology
matomira@di.epfl.ch
NeXTMail : matomira@lignext.epfl.ch
FAX : +41 (21) 693 - 5328
Technical Details
Message-ID:
<1993Jan11.110430@di.epfl.ch>Path:
arc1-ca.pugleaf.net!sparky!uunet!olivea!charnel!rat!usc!rpi!ghost.dsi.unimi.it!univ-lyon1.fr!chx400!sicsun!disuns2!/!matomiraReferences:
<1993Jan8.154239@di.epfl.ch> <GREGOR.93Jan8110532@tracer-bullet.parc.xerox.com> <GREGOR.93Jan8173751@tracer-bullet.parc.xerox.com>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!olivea!charnel!rat!usc!rpi!ghost.dsi.unimi.it!univ-lyon1.fr!chx400!sicsun!disuns2!/!matomira From: matomira@di.epfl.ch (Fernando Mato Mira) Newsgroups: comp.lang.clos Subject: Re: Metaclass inheritance? Message-ID: <1993Jan11.110430@di.epfl.ch> Date: 11 Jan 93 10:04:30 GMT References: <1993Jan8.154239@di.epfl.ch> <GREGOR.93Jan8110532@tracer-bullet.parc.xerox.com> <GREGOR.93Jan8173751@tracer-bullet.parc.xerox.com> Sender: news@disuns2.epfl.ch Organization: Ecole Polytechnique Federale de Lausanne Lines: 34 Nntp-Posting-Host: disun45.epfl.ch