[Vm-dev] InterpreterSimulator and Primitive Code convention

arnaud Jean Baptiste jbaptiste.arnaud at gmail.com
Tue Dec 1 09:01:22 UTC 2009


On Nov 30, 2009, at 10:41 PM, David T. Lewis wrote:

> On Mon, Nov 30, 2009 at 01:28:29PM +0100, arnaud Jean Baptiste wrote:
>> Hi,
>> I have some question about VM.
>> i the InterpreterSimulator is still maintain ? Because i am interest about this stuff. Who maintain this stuff ?
> The InterpreterSimulator is maintained as part of the VMMaker package on
> SqueakSource. It does not receive much attention, but the intent is to
> keep it working. Bugs and fixes reported on Mantis are appreciated.
> If you search through the archives of squeak-dev and vm-dev, you will
> find discussions of how to use it and what images it seems to work with.
> If you have specific questions, there are a number of folks on this list
> (or on squeak-dev) who can help.

ok thank a lot

>> Then, 
>> Some primitive have smalltalk code and this code is call only if the primitive fail.
>> But i have see some primitive code is using to be inline when generate the Virtual Machine via VMMaker. 
>> Then what is the true convention about the primitive code ?
> I am not sure that I understand your question. There are methods that
> call primitives, and have fallback code that is executed if the primitive
> fails. These methods are not part of the primitive, they are just ordinary
> methods that happen to call primitives.
> Methods that are inlined, and that are used to generate the VM via
> VMMaker, are a different thing. They are Smalltalk methods that are
> designed to be translated into C to form the actual primitives in
> the VM. The inlining is just a part of the translation process.

Ok that was i think, but i take the example of #decompress: fromByteArray: at:  From Bitmap
this method can be call to execute the primitive method primitiveDecompressFromByteArray
And the smalltalk source code is inlined by the MiscPrimitivesPlugins. 
Then may be we must give all the translated methods by MiscPrimitivePlugins and put in it.
Then write a fallback code on all this method ?

More information about the Vm-dev mailing list