Unix 3.7 gamma VM

Ian Piumarta ian.piumarta at inria.fr
Fri Mar 18 19:16:27 UTC 2005

On Mar 18, 2005, at 10:40, Ned Konz wrote:

> On Thursday 17 March 2005 2:08 pm, Ian Piumarta wrote:
>>      svn co http://squeak.hpl.hp.com/svn/squeak/tags/unix-3.7g-6
> What VMMaker version does that correspond to?

The one in 3.7-5898-full.

1.  It's a 3.7 VM, so the rule says it has to be built from a 3.7 
image.  The final 3.7 VM is built from the final 3.7-full image.
2.  Look in configure.ac (or watch the first few lines printed by 
configure as it runs) and it tells you exactly which image version 
generated the (bundled) interpreter sources.

> I see significant differences (for instance, in interp.c and in the
> LargeIntegersPlugin) between the sources generated from 
> VMMaker-tpr.5.mcz (30
> Mar 2004) on SqueakSource (repository at 
> http://kilana.unibe.ch:8888/VMMaker)
> and the generated sources in your src directory.

I regenerated everything from scratch using the final 3.7 image.  
Here's what I do:

     run the latest X.Y-Z image
     click on 'update'
     save the image iff anything VM-related was updated
     'clear out' the 'src' directory
     'generate all' into the empty 'src' directory
     type 'make clean; make' to build a VM from scratch
     type 'make dist-src dist-image dist-bin' to archive and release the 
new VM sources and binary (for the local platform) along with the image 
that generated it

IOW, whatever is in the latest 3.7 image is definitive for building a 
3.7 VM.  This is not negotiable.  (Other than fixing show-stoppers like 
the image segment thing, given the fix is so trivial, but then I would 
also file that fix into my 3.7-5898-full.image before distributing it 
in a tarball, as above.)

If the released 3.7 full image is generating broken Interpreter or 
plugins, then either the released image should be fixed (or changes 
posted to its update stream), or they should be in the 3.8 stream and 
the 3.8 VM declared the minimum version suitable for anyone 
encountering problems with 3.7.

> Where is the Squeak source code available if someone wants to work on 
> the VM?

3.7-5898-full.image on the FTP site of your choice (given that nothing 
at all happened when I pressed 'update' in the process described 

> I can't find it on SVN or in your tarball.

It's on my download page (3.7-5898 image and changes tarball, which 
contains the Interpreter sources used to generate the core VM 
corresponding to the released sources, always).

I'm not about to check images into the repostory.  OTOH, my generated 
'src' tree is now included in the unix area within the repository 
(platforms/unix/src), to make life easier for anyone building with 
those sources.  (configure now understands to look in two places for 
'src', and to use the one nearest the top of the hierarchy -- 
corresponding to sources generated outside of the 'platforms/unix' 
tree, which is where most people will be generating them.)

> In my opinion, this is why the VMMaker sources (the Squeak code, 
> possibly in
> MCZ format) should be versioned along with the C sources in SVN.

The VM sources are stamped with the image version to which they apply 
(see above re: configure).  You can ignore this if you really know what 
you're doing, but you get to keep all the pieces afterwards.

> Attached are the diffs I found.

Thanks -- but I don't think I can do much with them.  If they aren't in 
the 3.7 full image (or updates) then they aren't relevant to building a 
3.7 VM.  When 3.8 becomes current later today (hopefully), the 
Interpreter therein will be generated from the most recent 3.8 image 
and its update stream.

Hope this helps to clear up the process for anyone who wasn't already 
familiar with it.


More information about the Vm-dev mailing list