Confused about SystemChangeNotification
Andreas Raab
andreas.raab at gmx.de
Wed Apr 27 21:27:46 UTC 2005
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
|