Confused about SystemChangeNotification

stéphane ducasse ducasse at
Sun May 1 15:17:41 UTC 2005

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


> 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