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

Reply via email to