[Vm-dev] re: hacking a 3.9 VM

tim Rowledge tim at rowledge.org
Sun Oct 8 17:55:19 UTC 2006

On 8-Oct-06, at 10:28 AM, David T. Lewis wrote:

> I have not done a Unix build since SVN 1513, so I decided to give
> it a try.  Somewhere between 1513 and 1546, a new problem seems to
> have crept in.


> Verifying on a 32 bit Intel Linux:
> start with a clean Squeak 3.8 (Squeak3.8-6665-basic.zip)
> update to 3.8.1
> check version
>   ==> SmalltalkImage current (sic) vmVersion 'Squeak3.8 of ''5 May  
> 2005'' [latest update: #6665]'

Well that's the version of the vm you are running on so it isn't a  
problem. Does the image version provide the right answer ie 3.81 and  
update 6747 ?

> update Squeak Map etc
> load VMMaker 3.8b6 from SM
> load OSProcessPlugin 4.0.1 from SM
> load AioPlugin 2.0 from SM
>   ==> %$%#$! SqueakMap gives user-friendly "can't find EOCD  
> position" error
>       loaded my own copy from disk
> load XDisplayControlPlugin 2.0 from SM
>   ==> another $#!%@$% SqueakMap error
>       loaded my own copy from disk
> get an up-to-date platforms tree from SVN (1546)
> open VMMaker
>   ==> MessageNotUnderstood: SystemDictionary>>wordSize
>   load a copy of #wordSize from a 3.9 image
>   enter Mantis 5198 to get #wordSize included in the next 3.8 release

OK, that ought to have been fixed by the update to 3.8.1 I see it in  
update 6669VMM38-64bit-imageUpdates.

> open VMMaker
> make all plugins internal except OSPP, AIO, XDCP
> generate 32 bit code into ./src32 directory
> then from a Unix shell:
> $ ln -s src32 src
> $ mkdir build32
> $ cd build32
> $ ../platforms/unix/config/configure
> $ make install
>   ==> no problems with build, but...
> run Squeak
>   ==> image startup fails in FileDirectory class>>startUp
>       fails primitive in MacHFSPlusFileDirectory  
> class>>primPathNameDelimiter
> check "Smalltalk listLoadedModules" ==> FilePlugin is not loaded
>   ==> hmmm... no wonder, VMM did not include it in the plugins to  
> be built. Lots
>       of other primitives were excluded also.

Check Smalltalk listBuiltinModules to see if the plugin was actually  
included. Remember, load means loaded and in use. If there is a  
problem that prevents loading it will be in one list and not the  
other. Made that mistake myself a few times.

In VMMakerTool if you use the menu option to 'make all internal' does  
the FilePlugin end up in the right list? If not, then perhaps some  
directory has got lost in some code reshuffle between svn 1513 and 1546?

PS uncannily good sigline chosen by that 'random' generator.
tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
In the long run, every program becomes rococco, and then rubble.

More information about the Vm-dev mailing list