Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!wuarchive!uunet!tut.cis.ohio-state.edu!unreplyable!garbage From: Gregor@parc.xerox.com (Gregor Kiczales) Newsgroups: comp.lang.clos Subject: Re: Controlling the class of effective-slot-definition objects Message-ID: <91May8.125743pdt.29186@tracer-bullet.parc.xerox.com> Date: 8 May 91 19:57:33 GMT References: <9105032201.AA13370@cs.rpi.edu> Sender: welch@tut.cis.ohio-state.edu Distribution: inet Organization: CommonLoops Lines: 25 Date: Fri, 3 May 1991 15:01:41 PDT Xns-Originator: george@cis.ohio-state.EDU From: harrisr@cs.rpi.edu (Richard Harris) I want to control the class of my effective-slot-definitions based in information in my direct-slot-definitions, but the MOP is so vague on how compute-effective-slot-definition computes the initargs argument to effective-slot-definition-class that I can't figure out how to do this. I agree that it is difficult to tell how this works from the MOP document. One can only imagine just what the people who wrote it were thinking :-) One possibility is to continue to use PCL, as you are doing. The other is to retrofit the PCL behavior into the existing protocol. In other words, define a method on COMPUTE-EFFECTIVE-SLOT-DEFINITION which itself calls COMPUTE-EFFECTIVE-SLOT-DEFINITION-INITARGS and follows that protocol. You should be able to define a default method on COMP---INITARGS using a dummy class metaobject class to generate dummy calls to effective-slotd-class. Note that vendors could, as a compatible extension to the documented protocol, introduce COMP---INITARGS themselves.