[Vm-dev] Question about primitives

Mariano Martinez Peck marianopeck at gmail.com
Tue Feb 9 18:12:58 UTC 2010


>
>>
>>>
>>> A better place to look is in VMMaker using the browser.  There you'll see
>>> different kinds of primitive from things like GeniePlugin where all the code
>>> is written in Slang to SocketPlugin where all the code is merely wrappers
>>> around platform-specific support code.
>>>
>>
>>
>> I saw it! Thanks...much clear now.   I have, however, a couple of
>> problems/questions:
>>
>> - I couldn't compile in VMMaker as I have the error:
>> "MacOSPowerPCOS9VMMaker could not find directory for: Mac OS specific files;
>> is the platform root path set correctly?"   However, I have correctly set
>> the path. I attach a screenshot of the pharo image and the output of a
>> console.
>> Do you know what the problem can be ?
>>
>
> The directory the  MacOSPowerPCOS9VMMaker expects is called 'Mac OS' not
> MacOS or Macos or...  So either change it to expect MacOS or move or copy
> your platforms subdirectory from platforms/MacOS to 'platforms/Mac OS'.
>


I knew that was going to be confusing :(
I did try 'Mac OS' as it was like that after downloading with SVN. And
that's where I got the problem. Then, I thought (used to Linux) that there
may be some problem with the space. I changed, but still the same problem :(



>
>
> - can I download a "standard" VMMaker configuration from somewhere?
>>
>
> John and David are the experts here.  I have a decidedly non-standard
> configuration (for the time being) and so am of no help.
>
>

ok...no problem :)


>
>> - shouldn't be a good idea every time a new official VM is done, to save
>> the configuration into a .config file and to include it in the zip ?  So
>> that I can reproduce it and know what was done :)
>>
>
> Uh, yes :)
>


Excellent. Let's see what others think.


>
>
>> - is there a way to know which are the "core" plugins ? I mean, suppose I
>> want to deploy an application, do you know more or less which plugins will
>> be VERY likely to be needed ?   For example, I guess I don't need
>> CroquetPlugin or FFI if I don't use it in my app, but FilePlugin for
>> example, I guess it is needed even to bootstrap (maybe I am wrong, it is
>> just an example).
>> What I am trying to do is to see how can I create the minimal "production"
>> vm according to my needs.
>>
>
> I don't know of any proper list.  But these are excellent questions.  I
> think we do need a core list and as we work towards a kernel image we should
> try and arrange that those primitives needed by things loaded into the core
> image but not needed by the kernel image itself are available as external
> plugins, with notable exceptions such as the core graphics.  Having a more
> modular VM should make it easier to configure, not more difficult, because
> the core VM will be a simpler leaner more known quantity and plugins will be
> freer to evolve with the packages that they support.
>
>
>
Exactly that was my idea. I see work in progress for minimal images, but not
for "minimal" or more modular VM. I said I don't see not because there
isn't, just because I don't know.

I even though in having official .config for different common needs. For
example, a standard one, a kernel, a web (with Socket, Network, etc), a
headless, etc...
of course every people can build their own as they wish...But sometimes (at
least that's what happens to me) I don't know what a plugin is, and neither
I don't know if it is used or not by the image I plan to use.



>
>>
>
>> - I know nothing about SLANG, but something surprised me:  "self"
>> referes directly to the C function name ?
>> For example, in SocketPlugin >> primitiveResolverAddressLookupResult    it
>> does:
>> "sz := self sqResolverAddrLookupResultSize."
>>
>> and sqResolverAddrLookupResultSize is the name of the C function of the
>> plugin. WOWWW!!!
>>
>
> Yes, in Slang the receiver is elided, except for sends to the
> interpreterProxy.  There is effectively only one receiver in the main VM,
> the VM itself, and C has no concept of the receiver, so Slang just deletes
> it, or converts interpreterProxy foo: arg info interpreterProxy->foo(arg).
>
>
Much clear now :)  Thanks!


> You'll see some implementations of the C functions in the
> InterpreterSimulator and in subclasses of various plugins that simulate
> those plugins (e.g. look at subclasses of the FilePlugin).
>
>

Cool. I saw them!


>
>>
>> Thanks for all the help.
>>
>> Mariano
>>
>>
>>> HTH
>>> Eliot
>>>
>>>
>>>> I hope someone can help this newbie :)
>>>>
>>>> Thanks in advance,
>>>>
>>>> Mariano
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20100209/02e69fbc/attachment-0001.htm


More information about the Vm-dev mailing list