[Pharo-project] Why we have Behavior >> flushCache?
Mariano Martinez Peck
marianopeck at gmail.com
Tue Apr 26 13:51:09 CEST 2011
On Tue, Apr 26, 2011 at 2:35 PM, Alexandre Bergel
<alexandre.bergel at me.com>wrote:
> Not using the receiver is indeed misleading. I thought it simply flushes
> the cache for a particular class
You are not alone :) That's why I am proposing the change.
Of course, a nice comment could be enough (even if I muuuuch prefer to have
it in elsewhere), but I think it may be a good moment to reify the VM and
delegate a couple of things to it.
> On 26 Apr 2011, at 06:34, Mariano Martinez Peck wrote:
> > Hi. As far as I can see,
> > Behavior >> flushCache
> > "Tell the interpreter to remove the contents of its method lookup
> cache, if it has
> > one. Essential. See Object documentation whatIsAPrimitive."
> > <primitive: 89>
> > self primitiveFailed
> > And primitive 89 does nothing in particular with the receiver (the class
> in this case). In both, InterpreterVM and Cog, the WHOLE cache is flushed,
> there is NOTHING related to the receiver class. Of course, that's at least
> what it looks for me (please tell me if I am wrong).
> > So...if this is the case, wouldn't make sense to move it elsewhere? like
> Smalltalk flushCache or Smalltalk vm flushCache (and it is a good moment to
> reify the VM). So after we can do: Smalltalk vm version. Smalltlak vm
> flushCache, Smalltalk vm parameterAt: , etc....
> > If you don't like doing "Smalltalk vm" then we can create a VM class with
> all class methods, or a singleton and use #current or a singleton and put it
> in Smalltalk globals...etc
> > We will need to fix a couple of senders, thus.
> > What do you think? For me is really confusing, and you don't understand
> it until you see the primitive implementation.
> > Cheers
> > --
> > Mariano
> > http://marianopeck.wordpress.com
> Alexandre Bergel http://www.bergel.eu
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Pharo-project