On Fri, Aug 1, 2014 at 9:48 PM, Steve Haflich shaflich@gmail.com wrote:
I'm typing on a phone in a dog park. Expect brevity and typos.
Why do think one or another behavior is incorrect? slot-value is required only to return the correct value (etc.) if all the metaobjects are of classes "specified" in the standard. The MOP prohibits you from changing or extending MOP gfs when all the discriminating args are of specified classes. If you use customized class or slot-definition metaclasses then slot-value needs to obey some or all of the full slot-value-using-class protocol, but otherwise your code cannot legally change what s-v does or returns.
This is spelled out somewhere in the MOP in a section on restrictions on user code or something like that.
I think I found the subsection you refer to: AMOP 5.3.1 (pp. 142-144) "Implementation and User Specialization", which contains two sub-subsections with titles starting with "Restrictions on". I will try to decipher those and their implications now that I have renewed motivation to do so.
Thank you very much Steve, you're always so helpful in these matters.