Chris, didn't you do something about this in Squeak? It would be nice to keep consistent if possible... Eliot (phone) On Feb 20, 2015, at 6:41 AM, Marcus Denker <marcus.denker@inria.fr> wrote:
Hi,
The current Pharo4 contains *a lot* of MCVersionInfo instances.
MCVersionInfo allInstances size
11095
The hold on to strings, Date, UUID⦠a lot of stuff. All in all, this is around 10% of the current image.
If you do
MCVersionInfo allInstances do: [ :each | each instVarNamed: 'ancestors' put: nil ].
you image is a couple of MB smaller.
In the past, when this information started to be >8MB, we did that. With the bad effect that we can not merge anymore across this boundary: we kill the past.
Now this information is of course continained in the last MCZ file, too (all of them contain the complete historyâ¦)
So would the following work?
-> we set the âancestorsâ of MCVersionInfo to #reload -> the accessor, when it sees #reload, takes the name, deduces from that the package, and goes to the repo to load the ancestry info from the MCZFile.
This means that e.g when saving a MCZFile, it would first re-create history info and then save it completely (like now), yet someone who just uses the system would never need to have this info in the image.
Marcus