[Pharo-project] Memory usage

David T. Lewis lewis at mail.msen.com
Tue Jul 31 10:09:48 EDT 2012

Hi Jannik,

I am not a Mac user, and I have only ever done this on Linux, so I cannot
promise that it will be easy. Possibly Esteban can give us some advice here,
and correct my errors. Also, if you are going to try this, we may want to
take the discussion to the vm-dev list.

You will need to install the Mac tools for compiling Unix programs (sorry
I do not know what this is called) and you will need to be able to compile
programs using CMake and the gcc tools on a Mac. I know very little about
this myself, but I'm sure others can give some tips.

The actual VM that you will need to build will be an interpreter VM, and
you will be building it with a preprocessor macro set to force use of
the 64-bit object format. The resulting VM will be slow compared to what
you are used to with Cog, and it may not have all the features that you
would expect from a Mac VM (i.e. the VM that Esteban supports), but I
expect that it should work on Mac and that it would allow you to run a
64-bit image prepared with the SystemTracer.

As luck would have it, Ian Piumarta is in the process of updating the unix
VM code right now, and this will make it easier to do the build for 64-bit
images. I would say that we should wait a couple of days before starting
any new work on this so that we have all of the latest updates.

I'm not sure if this is something that you want to get into, and it is not
what I would call "easy" ;) But if you want to try it I will do my best
to step you through the process.


On Tue, Jul 31, 2012 at 03:18:19PM +0200, jannik.laval wrote:
> Hi Dave,
> I begin with a small problem (is it ?): my os is the latest apple macos.
> It seems that there is no squeak vm 64 for macos (I did not find it).
> How can I build one "easily" ?
> Thanks,
> Jannik
> On Jul 24, 2012, at 2:04 PM, David T. Lewis <lewis at mail.msen.com> wrote:
> > On Tue, Jul 24, 2012 at 09:27:49AM +0200, jannik.laval wrote:
> >> Hi Dave,
> >> 
> >> Should I load the SystemTracer available on SqueakSource ? The last version is from 2011, and seems old, no ?
> >> When I try it, it calls some methods that do not exist in Pharo.
> >> 
> >> Do you have more information on how to use it ?
> > 
> > Hi Jannik,
> > 
> > The system tracer is explained in the class comment of class SystemTracer.
> > The comment was written by Dan Ingalls (I think), and gives credit to Ted
> > Kaehler as the inventor of the original. Class SystemTracer2 has additional
> > documentation including how to run the trace. SystemTracer2 is a newer
> > version that you will actually be using, so you can think of SystemTracer
> > as the original reference implementation, while SystemTracer2 and its
> > subclasses are variations on the original. SystemTracer64 is the subclass
> > that implements conversion logic for copying 32-bit objects into the
> > experimental 64-bit object memory format. This object format is described
> > in the SystemTracer64 class comment, and more information is available at
> > http://squeakvm.org/squeak64.
> > 
> > A system tracer will first put your image into a "quiet" mode, then copy
> > and convert the running object memory to a new image file, and then wake up
> > and return to normal. This is similar to saving your image and restarting
> > from a disk file, except that the system tracer will trace your object
> > memory to a new format rather than saving it unchanged.
> > 
> > To trace your running image to a new 64-bit image file, you would do this:
> > 
> > 	SystemTracer64 writeImage: 'new64bitImage.image'
> > 
> > The last update I did to SystemTracer (SystemTracing-dtl.23) works with
> > closure-enabled images, including Pharo at one time. I have a 64-bit
> > Pharo 1.4 image that I made about a year and a half ago. I don't know
> > what has changed in Pharo since then, so probably some updates will be
> > needed, or possibly a Pharo-specific version. I know that others on the
> > Pharo list have worked on this, so hopefully someone else can give you
> > some pointers about that.
> > 
> > Dave
> > 
> > 
> ---
> Jannik Laval

More information about the Pharo-dev mailing list