64-bit VMs

Ian Piumarta ian.piumarta at inria.fr
Fri Apr 1 01:48:43 UTC 2005


For anyone interested, here's a copy of a message I just posted to vm-dev:

Folks,

I've just released 64-bit compatible sources for 3.8, and checked-in
both Unix and Cross changes to the TRUNK of the repository.

To build a Unix VM from the repository, first check out the trunk as
usual, then:

  mkdir bld
  cd bld
  ../platforms/unix/config/configure --with-src=src32
  make

will build a 32-bit VM.  If you say

  ../platforms/unix/config/configure --with-src=src64

instead then it will build you a 64-bit VM.

I have tested both 32- and 64-bit VMs on PowerPC (32-bit native),
Intel Pentium and Intel Itanium 2.  All appears to work.

Note that I have made some changes to the platforms/Cross part of the
repository.  While I tried hard to keep things as backwardly
compatible as possible (e.g., the Unix tree happily compiles pre-3.8
sources as-is) this might have temporarily broken the build for other
platforms.  My apologies if this is the case, OTOH it's a wonderful
forcing function to have the maintainer of your favorite platform get
a 64-bit VM out the door Real Soon Now.

I've not had chance to update my usual download page to reflect the
new 32/64 duality in the distribution, but I did have time to make
some archives of source code, 32- and 64-bit images, and 32- and
64-bit VMs for the three architectures mentioned above.  You can pick
them up here:

  http://squeak.hpl.hp.com/squeak64/dist3/

wherein:

  Squeak-3.8a-2.src.tar.gz
    contains the source code, and a handy one-stop top-levelMakefile
    at which you can type 'make WIDTH=32' and 'make width=64'.

  Squeak32-3.8g-6548.image.tar.gz
  Squeak64-3.8g-6548.image.tar.gz
    contain 32- and 64-bit images, respectively.  (Note that I had
    to condense the changes in the base 3.8g-6548 image because
    of reaching the limit on source position stamp.)

  Squeak32-3.8a-2.i686-pc-linux-gnu.tar.gz
  Squeak32-3.8a-2.ia64-linux-gnu.tar.gz
  Squeak32-3.8a-2.powerpc-apple-darwin7.8.0.tar.gz
    contain 32-bit VMs precompiled for Pentium, Itanium 2 and PowerPC.

  Squeak64-3.8a-2.i686-pc-linux-gnu.tar.gz
  Squeak64-3.8a-2.ia64-linux-gnu.tar.gz
  Squeak64-3.8a-2.powerpc-apple-darwin7.8.0.tar.gz
    contain 64-bit VMs precompiled for Pentium, Itanium 2 and PowerPC.

Finally...

  ChangeSets

is a directory containing everything that was used to create the
above, relative to the base 3.8g-6548 image:

  VMMaker-tpr.14.mcz
    is Tim's latest VMMaker.

  VMM38b4-64bit-vm1-ikp.1.cs
    are Dan and my 64-bit changes, plus various changes Tim made to VMM
    since 3.7-5, all spiffed up and including a final couple of (nasty)
    new bugs (one original bug, and a few that crept in which merging
    VMM with the 64-bit changes) thoroughly fixed.  This gets you
    enough to generate interp.c plus the three essential plugins:
    BitBlt, Ballon and File.

  VMM38b4-64bit-vm2-ikp.2.cs
    is new 64-bit support for plugins using the SmartSyntax thing.
    I made SocketPlugin (which uses it) 64-bit clean to make
    sure it was working reasonably.

With both of the above loaded you should be able to regenerate the
src32 and src64 trees included in the source tarball (and included in
the unix part of the repository).

  System-Tracing.2.cs
    is the new SystemTracer from Anthony and Stephen, subclassed
    by Dan to make 64-bit images.  This ONLY works on big-endian
    machines for now.  (We know about this.  Don't yell at us.)

  VMM38b4-64bit-image1-ikp.1.cs
  VMM38b4-64bit-image2-ikp.1.cs
    contain various changes to the class library that you probably
    need to have a healthy image running with 64-bit oops.

(Tim, especially, will want to take the vm1 and vm2 changesets and file
them into VMMaker _immediately_, before it becomes a 'moved target'
[again].  No need to read these files: they are the changes Dan and I
sent you, that you sent back last week with your recent VMM additions
filed-in over the top, in which I then fixed some subtle 'merge' bugs
that crept in during the process along with the WeakArray problem in
primStringReplace posted to squeak-dev a couple of days ago.  Trust
me.  Just hit 'install'.  It's one huge chunk of goodness.)

Enjoy!

Ian (totally exhausted, and declaring the weekend already arrived ;-)




More information about the Squeak-dev mailing list