> Hi.
> I made a little investigation..

Thanks.

> The changes file condensing works fine.

Yes we got that too. And sometimes it did not finished depending on the actual 
changes.
The problem was in that case that after some methods were impossible to browse.

> Except that there something wrong with destroying source pointers of
> not-installed methods.
> 
> After commenting a following line:
> "     CompiledMethod allInstancesDo: [:e | e isInstalled ifFalse: [e
> destroySourcePointer]]. "
> 
> It were able to run to an end, and by running this check:

> | empty |
> empty := Set new.
> Smalltalk allClassesAndTraitsDo: [:classOrTrait |
> empty addAll: (       classOrTrait methodDict select: [:m | m sourcePointer 
> =0 ])
>       ].
> empty isEmpty
> -->> prints true
> 
> which means there is no installed methods with sourcePointer = 0 (and
> hence with no source code) after condensing the changes.
> 
> 
> But what makes me really suspicious is following:
> 
> CompiledMethod allInstances size 55797
> (CompiledMethod allInstances reject: #isInstalled) size  12586
> 
> it looks like #isInstalled is buggy, or otherwise indicating that
> there is problem with image,
> which keeps so many non-installed methods hanging around.
> I would simply put a following at the beginning of #condenseChanges:
> 
> (CompiledMethod allInstances reject: #isInstalled) size > 0 ifTrue: [
> self error: 'first, get rid of any uninstalled methods' ].
> 
> So, then you would not need to use #destroySourcePointer :)
> 
> Here an alternative version of #destroySourcePointer. But it doesn't
> makes any big difference.
> 
> destroySourcePointer
> 
>       "We can't change the trailer of existing method, since
>       it could have completely different format. Therefore we need to
>       generate a copy with new trailer, and then #become it"
>       | copy |
>       copy := self copyWithTrailerBytes: CompiledMethodTrailer empty.
>       self becomeForward: copy.
>       ^ copy
> 
> 
> P.S. runned it on 1.1-11343-UNSTABLE
> 
> -- 
> Best regards,
> Igor Stasenko AKA sig.
> 
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to