[squeak-dev] MC scories in Object's DependentsFields

H. Hirzel hannes.hirzel at gmail.com
Tue Jan 22 06:29:50 UTC 2013


Thank you Bert for these concise answers. They will make up a good
bases for the comment.

A follow up question:

At which occasion is a snapshot done and what purpose does it serve?


--Hannes

On 1/21/13, Bert Freudenberg <bert at freudenbergs.de> wrote:
>
> On 21.01.2013, at 13:40, "H. Hirzel" <hannes.hirzel at gmail.com> wrote:
>
>> And as we are at it
>>
>>    http://bugs.squeak.org/view.php?id=7560
>>
>> Monticello-Base contains the three classes
>>
>> MCDefinition
>> MCPackage
>> MCSnapshots
>>
>> All class comments are empty.
>
> A definition is a model for Smalltalk code. A package snapshot is a
> collection of these definitions.
>
>> What is the relationship between MCPackage and PackageInfo.
>
> MCPackage uses PackageInfo to find out which methods and classes belong to a
> package.
>
>> What does
>>   MCDefinition clearInstances.
>> do?
>
> It nils out the quick-access cache to its subinstances. #allInstances is
> very slow as it needs to scan the whole object memory, whereas retrieving an
> instance from the "instances" WeakSet is O(1).
>
>> Why can this be done safely?
>
> Because re-using a definition is only a space optimization.
>
>> What is the impact of doing this?
>
> When loading/creating another snapshot, the definitions that are in both
> snapshots will not be shared but occupy space twice.
>
> - Bert -
>
>> --Hannes
>>
>>
>> On 1/21/13, Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com> wrote:
>>> Trying to chasePointers of MCDefinition allSubInstances, I saw several
>>> instances of MCPatchBrowser, MCVersionInspector, ...
>>> Though no such window is opened in my World, what's up?
>>>
>>> If I chase pointers of one of these ghost MCPatchBrowser keys, I see
>>> nothing but the opened inspectors and ObjectDependentsFields...
>>>
>>> I guess this must be exactly the same bug as
>>> http://bugs.squeak.org/view.php?id=7119 (see my own comments).
>>> The key of DependentsFields are weak, so they should be reclaimed.
>>> But what if the value points somehow to the key (no matter how deep)?
>>> Well, the key will never be reclaimed then.
>>>
>>> I don't feel comfortable with these dependencies... It's a nest of
>>> problems.
>>> In MVC, the dependents were maintained in model, so a cycle would be
>>> garbageCollected more easily...
>>>
>>> Nicolas
>>>
>>>
>>
>
>
>


More information about the Squeak-dev mailing list