[squeak-dev] [ANN] MCInfoProxy
Chris Muller
asqueaker at gmail.com
Thu Aug 15 14:46:36 UTC 2013
On Thu, Aug 15, 2013 at 2:46 AM, Frank Shearar <frank.shearar at gmail.com> wrote:
> 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.
The persistent state of the mcz files is unchanged. Only the
in-memory state is slimmer.
More information about the Squeak-dev
mailing list
|