[Pharo-project] Memory usage

Stéphane Ducasse stephane.ducasse at inria.fr
Tue Jul 31 15:12:17 EDT 2012

esteban has been fighting all day to compile the vm on mountain lion.
A problem with free type plugin not found dylib and friends.

> 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.
> Dave
> 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