[Pharo-project] Why we have Behavior >> flushCache?

Mariano Martinez Peck marianopeck at gmail.com
Tue Apr 26 12:34:13 CEST 2011


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gforge.inria.fr/pipermail/pharo-project/attachments/20110426/8ce81005/attachment.htm>


More information about the Pharo-project mailing list