Quoting Guillermo Polito <guillermopolito@gmail.com>:
On Thu, Apr 26, 2012 at 1:52 PM, Pavel Krivanek <pavel.krivanek@gmail.com> wrote:
Great news!
I tried it on fresh 1.4 and I got:
SmalltalkImage(Object)>>doesNotUnderstand: #shutDownImage:
HzImageWriter>>writeImage:
Oups, bad packaging :). Will fix that asap.
Do you plan to create a loader too? To be able to load objects from
different image file.
Hmm it's kind of the inverse operation :P. Don't think it's an important path for the project, but I can do it after for the lulz :).
-- Pavel
On Thu, Apr 26, 2012 at 1:00 PM, Guillermo Polito
<guillermopolito@gmail.com> wrote:
> First public push of the first step of the hazelnut GSoC project :)
>
> In a nutshell
>
> For those who didn't know SystemTracer (the father):
> It is a tool that traces a graph of objects and writes an image from it.
>
> ImageWriter is a refactored, renamed and repackaged version of SystemTracer2
> with the following changes:
> - The image format can be provided as a parameter.
> - You have to provide an SmalltalkImage object as root to write the image
> (so in the future we can write bootstrap with this).
> - The object format was reified in objects. So the code is easier to
> understand + change, and people can learn how are our objects in memory
> easily :D.
>
> Right now, only 32 bit image format is supported.
>
> Structure
>
> - ImageWriter-Core has the image formats and the image writer in itself
> - ImageWriter-ObjectFormats contains objects that represent the memory
> layout of the objects and it's headers.
> - ImageWriter-Tests has some tests.
>
> Tests done
>
> - Only tested in Pharo-1.4
> - There are specific tests written for the size and headers of the objects
> - Also, I've written a Pharo-1.4 image and then run the tests in the copied
> image. Only one failure compared to the original :)
>
> Known Bugs :)
>
> - WeakRegistryTest>>#testFinalizationWithOnFork is failing, and when I run
> it manually it works :/. In the image I use to write, it does not happen,
> only in the clone.
> - When opening the new image, the window is too small. It is not
> respecting the original image size. Don't know yet what is the problem.
>
> How To Download
>
> Gofer it
> squeaksource3: 'ImageWriter';
> package: 'ImageWriter-Core';
> package: 'ImageWriter-ObjectFormats';
> package: 'ImageWriter-Tests';
> load
>
> How to Use it
>
> HzImageWriter new
> format: HzCogImageFormat new; "or HzInterpreterImageFormat new"
> imageFileName: 'someFile.image';
> onInitializeDo: [ "Some initialization?" ]; "this is optional,
> probably the same as an startup script, probably nonsense"
> writeImage: Smalltalk "Yes, we provide the our lovely global Smalltak,
> but any SmalltalkImage instance could be"
>
> Next steps on this direction
>
> - support to write an isolated image different from the host one (I'll know
> what I need later, hehe)
> - class comments!
> - metacello configuration
> - better api :)
>
> Links
>
> http://ss3.gemstone.com/ss/ImageWriter.html
>
>
> Cheers,
> Guille
Cheers,
Juan Vuletich