On Tue, Apr 26, 2011 at 1:56 PM, Camillo Bruni <camillo.bruni@inria.fr>wrote:
How about putting such methods on an Interpreter class?
that's why I was saying by "reify the VM"
On 2011-04-26, at 14:35, Alexandre Bergel wrote:
Not using the receiver is indeed misleading. I thought it simply flushes the cache for a particular class
Alexandre
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 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
-- Mariano http://marianopeck.wordpress.com