Unix 3.7 gamma VM
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
> 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