On Fri, 24 Jul 2009 13:53:47 +0200, Igor Stasenko wrote:
2009/7/24 Klaus D. Witzel : ...
I was responding to a practical issue, not a conceptual one; try
 Smalltalk at: #Smalltalk put: Smalltalk
then you should see why that's not possible.
I don't see how this can be a barrier of any sort for a real hacker:
(Smalltalk associationAt: #Smalltalk) becomeForward: (#Smalltalk -> Smalltalk).
Smalltalk at: #Smalltalk put: Smalltalk
There are numerous ways how to get around this ;)
Have you considered rehash, .image save & load ? I've thought about replacing (Smalltalk associationAt: #Smalltalk)'s value many times and don't want to risk other people's .images just because of *any* silly mistake. That's why I'm interested in solutions to the practical side.
Btw, this is another reason to not expose messages like #associationAt: to users.
Yes, one reason is: do not expose #pointersTo:, since then #associationAt: can be simulated. And just another one: do not expose #someObject or #nextObject ( & friends), since then #pointersTo: can be simulated. (cough) back to Smalltalk? :)
Alas, associations is used by compiler. :(
Sure. /Klaus