Confused about SystemChangeNotification

stéphane ducasse ducasse at iam.unibe.ch
Sun May 1 15:17:41 UTC 2005


I asked nathanael to reply since he refactored roel's code.

Stef

> Hi -
>
> I am running into ever more trouble with SystemChangeNotification. Can 
> somebody give me a brief rundown on how it is supposed to work? Any 
> tests associated with it to document boundary cases? Here are two 
> rather obscure issues that I am just running into:
>
> a) When I compile a method in another category, no recategorized event 
> is generated. Why? It is impossible to find out where a method "came 
> from" when using the modified event. This is easy to fix since the 
> code in ClassDescription>>addAndClassifySelector: selector withMethod: 
> compiledMethod inProtocol: category notifying: requestor explicitly 
> suppresses this notification. But the question remains - why do it in 
> the first place?
>
> b) When renaming a class the renamed event refers to the class under 
> the old name. In other words, rather than getting our hands on the 
> class under the name by which it is known in the environment we get it 
> under the old name which no longer exists in the environment. Why? 
> This is totally inconsistent - it exposes the fact that the invariant 
> "aClass == aClass environment at: aClass name" is temporarily broken. 
> Why?
>
> If there are any good reasons for the strange behavior above I'd 
> really like to know why it behaves that way.
>
> Cheers,
>   - Andreas
>




More information about the Squeak-dev mailing list