[squeak-dev] [ANN] MCInfoProxy

Frank Shearar frank.shearar at gmail.com
Thu Aug 15 07:46:18 UTC 2013


On 14 August 2013 19:57, Chris Muller <asqueaker at gmail.com> wrote:
> 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.

I'm sure you're already thinking about this, but we need to be careful
to maintain compatibility with old MCZs. In particular, we need to be
able to consume MCZs with full histories, and have images without this
enhancement still work with the new style MCZs. It might well be worth
asking some Pharo folks what they think, and maybe coordinate a bit
across dialects.

frank


More information about the Squeak-dev mailing list