[squeak-dev] [ANN] MCInfoProxy

Chris Muller asqueaker at gmail.com
Wed Aug 14 18:57:03 UTC 2013


A little ditty to move toward sustainable ancestry.  After selecting
"flush cached versions" from the menu, the ancestry-tree will now be
like this:

aMCVersionInfo.27
     'ancestry' = anArray
          1 = aMCVersionInfo.26
               'ancestry' = anArray
                    1 = aMCVersionInfo.25
                         'ancestry' = anArray
                              1 = aMCInfoProxy(trimmed  'info',
'repository' to re-retrieve it)

Truncating the ancestry hierarchies this way recovers about 2.5MB of image size.

Special notes:

- It keeps the most-recent 10 and snips off the ancestry starting
10-versions ago to replace it with a MCInfoProxy.  Most any operation
that uses ancestry will cause the original full MCVersionInfo tree to
need to be re-retrieved.

- This assumes the Info of 10 versions ago exists in the same
repository as the current version.  In practice, it normally will.

- When a new version is saved after recovering the Info tree from
ANOTHER FILE. (e.g., the one 10 versions ago) the result is an
ancestry tree built from multiple files.  But it's the same tree, so
this should be no problem.


More information about the Squeak-dev mailing list