[Vm-dev] External Modules--two questions/observations

gettimothy gettimothy at zoho.com
Sun Nov 10 20:04:40 UTC 2013

I just did a fresh repeat of the steps on a Windows 7 (64 bit) box and I have the same primitive fails that I have on the Linux boot.
That's good news for me.

So, in my quest to get competent at this stuff, I can x "Make A VMMaker image" off my list and move on. 

Thanks for the help.

Read the latest two articles on my blog (A Spur gear for Cog & Lazy Become).                         <--I am here

 X Make a VMMaker image (see e.g. Cog Blog :: Building a Cog Development Image).                   <--This is feel better about now as the same things are broken on linux32, win64 and linux64(32 compat)

 Then read SpurMemoryManager, /especially/ its class comment.                                             <--Then here

Then read its subclasses Spur32BitMemoryManager (functional) & Spur64BitMemoryManager (completely untested).
Then read SpurBootstrap32.
 Try and create a 32-bit Spur image and run it.
Then try and implement SpurBootstrap64.
Try and create a 64-bit Spur image and run it.

---- On Sun, 10 Nov 2013 08:40:58 -0800 gettimothy <gettimothy at zoho.com> wrote ---- 

 Superb, thank you.

This gives me confidence to develop on my linux 32-bit compat boot.

The OSProcess loads just as you say. 

AiO and SSL fail, but the SSL is a known problem (which is why I need to learn this low-level stuff, so I can fix things like that.



---- On Sat, 09 Nov 2013 17:01:20 -0800 David T. Lewis<lewis at mail.msen.com> wrote ---- 

On Sat, Nov 09, 2013 at 04:03:42PM -0800, gettimothy wrote: 
> I am systematically working through Eliot's Cog Blog :: Building a Cog Development Image checklist on both my 64 bit Linux box with 32 bit compat libs and a slow/old pure 32 bit linux box. 
> I noticed that both Alien and VMMaker added and "activated" new plugins. 
> 'IA32ABI VMMaker.oscog-eem.99 (i)' << post alien 
> 'SoundPlugin VMMaker-oscog.54 (i)' <<post alien 
> 'UUIDPlugin VMMaker-oscog.47 (e)' <<post alien 
> 'CroquetPlugin VMMaker-oscog.40 (i)' <<post VMMaker 
> 'FloatMathPlugin VMMaker-oscog.40 (i)' <<post VMMaker 
> 'JPEGReadWriter2Plugin VMMaker-oscog.40 (i)' <<post VMMaker 
> While 
> SqueakSSL-Plugin-ar.3 
> VMConstruction-Plugins-OSProcessPlugin.oscog-eem.44 
> Freetype-Plugin-IgorStasenko.64 
> VMConstruction-Plugins-AioPlugin-eem.15 
> Did not show any new plugins in either SmalltalkImage current listLoadedModules or listBuiltinModules. 
> When I ran into this on my 64 bit box with the 32 bit compat libs, I thought it might be a library problem, however, now that I have done this on the pure 32 bit system, I dont know. 
> Looking at SmalltalkImage, I did not see any method to LOAD a module. Is there one? 
The normal way to load an external plugin is to call one of its primitives 
and let the loader locate and load the plugin. 
In your example, you have the UnixOSProcessPlugin built as an external plugin, 
but you can see that it has not yet been loaded. One of the primitives in 
that plugin is #primitiveGetPid, so if you were to write a method to call 
that primitive, the plugin module would be loaded. 
To illustrate, try adding the following method to some class. 
 MyClass class>>myMethodThatUsesOSPP 
 <primitive: 'primitiveGetPid' module: 'UnixOSProcessPlugin'> 
 self primitiveFailed 
Now evaluate "MyClass myMethodThatUsesOSPP". Check listLoadedModules and 
you should see that the plugin is now loaded. 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20131110/958d39bc/attachment.htm

More information about the Vm-dev mailing list