Quoting Guillermo Polito <[email protected]>:
> On Thu, Apr 26, 2012 at 1:52 PM, Pavel Krivanek <[email protected]> > 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 :). This could allow extracting objects from broken images (that are unable to start)? That would be great! BTW, this is a great project. Thank you! Cheers, Juan Vuletich > > -- Pavel > > > > On Thu, Apr 26, 2012 at 1:00 PM, Guillermo Polito > > <[email protected]> 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
