[cells-devel] Re: [cello-devel] Constructor syntax

Thomas F. Burdick tfb at OCF.Berkeley.EDU
Fri May 14 09:43:39 UTC 2004


Kenny Tilton writes:

 > Food for thought: slot-value is a back door. Not sure what that food 
 > means, tho, because for a while Cells /was/ mop-based and slot-value was 
 > not a back door. But that was slower and less portable. But those are 
 > practical concerns, not ideological. But consistency here might be a 
 > Good Thing if only for consistency's usual merits (hobgoblins 
 > notwithstanding).
 > 
 > More food: when slot-value was /not/ a backdoor, it was a nuisance to 
 > programming cells. I had to set a *backdoor* special to actually get the 
 > raw slot-value in Cell internals. ie, slot-value-using-class and its 
 > setter both had to (in all specializations) keep an eye out for 
 > *backdoor* access. OK, it is not the end of the world, but it may have 
 > been a Message From God, viz, that perhaps the transparency thing 
 > (making it seem as if CLOS does Cells) is a mistake: CLOS does /not/ do 
 > Cells. Cells by this thinking are not strictly an /extension/ of CLOS, 
 > but rather a distinct OO capability implemented thru CLOS. Less 
 > profoundly, should Cell internals ever care about slot bounditude, we'll 
 > be back into *backdoor* tricks.

Hmmm ... maybe you're right.  Exporting md-slot-value and making it
bottom out to calling slot-value would make this argument stronger.
Then, if you're using Cells, just use the md- variations for
everything.  If you're consuming object that you don't know too much
about (are they Models?), you really don't want to be doing things
like calling slot-value on them anyway.

 > Having to hack MCL folks' CLOSes becomes just another straw on the back 
 > at this point.
 > 
 > Thoughts?

Well, I do think it's more like a bug in MCL, since it's in line with
the MOP they implement, but on reconsideration, the md- solution might
be better.  Since Cells really isn't integrated into CLOS, having this
little feature integrated would be weird; the normal backdoor around
it would be to write a method on s-m-u-c that circumvents Cells'.  But
since model classes aren't instances of a model-class metaclass, the
backdoor would be to get an :around method around the Cells :around
method ... okay, that might just be a message from Rakim (God MC).

--- 
           /|_     .---------------------------------.
         ,'  .\  / | It's been a long time,          |
     ,--'    _,'   | I shouldn'ta left you           |
    /       /      | without a dope rhyme to step to |
   (   -.  |       `---------------------------------'
   |     ) |                                          
  (`-.  '--.)                                         
   `. )----'                                          




More information about the cello-devel mailing list