[Vm-dev] About primitive for cleaning compiled method cache

David T. Lewis lewis at mail.msen.com
Tue Mar 12 12:26:47 UTC 2013


On Tue, Mar 12, 2013 at 12:54:02PM +0100, Nicolas Cellier wrote:
>  
> As I understand it, there is a nuclear weapon
> - primitive 89 for cleaning all caches
> and more chirurgical tools:
> - primitive 116 for cleaning method cache of a single CompiledMethod
> - primitive 119 for cleaning method cache for all CompiledMethod
> corresponding to a given selector
> 
> Currently, when we replace a CompiledMethod in some MethodDictionary,
> we call both primitive 116 then primitive 119.
> As I understand it from image code comments, this was to support old
> VM that would support either one or the other form.
> Modern VM (interpreter VM4.x serie, Stack or Cog) are mandatory to run
> a modern image all implement both forms, so backward support argument
> is gone.
> I think it's time to clean some dust.
> So my question is which one is necessary ?
> 

Good question, and I do not know the answer. However, I do want to note
that the modern interpreter VM is often used to run older images, back
to at least Squeak 3.6. Any primitive that is required for Squeak 3.6
should continue to be available in the interpreter VM (and for all VMs
we should not reassign any of those three primitive numbers).

Dave



More information about the Vm-dev mailing list