[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