[new to smalltalk] what does this error want to tell me?

Herbert König herbertkoenig at gmx.net
Wed Dec 8 18:40:35 UTC 2004


sorry, sent this to Dan in private, have to be more careful.

Hello Dan,

thanks for the explanation, I have to go into more detail:


DI> When a class gets removed, it actually gets transmuted to a
DI> stub named AnObsoleteNameIUsedToBe, so that if there are existing
DI> instances, they will still be proper objects with a proper class.
DI> ....
DI> If you don't care about those instances, then just figure out
DI> a way to get rid of them (ie delete the structure that is holding
DI> onto them).

as I thought that some objects might be dangling around I deleted
everything I believed might point to an instance of the deleted class.


DI> ...but the name AnObsoleteGelaendeLinie is not registered as
DI> a global.  So you need to get in a context (such as a debugger)
DI> where you have a reference to one of the actual obsolete

Did this, in the debugger typed "self inspect"
in the resulting inspector (step1.gif) tried "self class all
instances" (step2.gif) and got one single instance.
In the inspector seen in step1 I tried "objects pointing to this
value" on self and got the inspector as the only one.

To me this means, if I close the inspector there should be no more
instances of my obsolete class ??? But even after "Smalltalk
garbageCollect it reemerged.

DI>
DI> zork class allInstances elementsExchangeIdentityWith:
DI>         (zork class allInstances collect: [:x | x as: GelaendeLinie])

As I didn't find a variable I sent the message to self in an inspector
as seen in step 4. No help either! This thing seems very slippery!

DI> ...and everything should miraculously start working again (if
DI> there aren;t other such problems ;-).

Well no miracle happened and even no debugger appeared. What I'll try
next is file out all categories I created, file them in in a new image
(using squeak 3.6) and copy the workspace with all my experiments. At
least this should work as a fresh image shouldn't know anything of an
AnObsoleteGelaendeLinie.

Even if this works I'm very curious what's going on here!

DI> You say you are a newbie, so here's what is going on here:
The advantage of smalltalk (and some knowledge from the tutorials and
the free books) made this understandable from reading the code.

DI> Hope this helps and, more specifically, I hope it works for you.


DI> Welcome to Squeak ;-)

Thank you!



Herbert                            mailto:herbertkoenig at gmx.net
-------------- next part --------------
A non-text attachment was scrubbed...
Name: step1.gif
Type: image/gif
Size: 3764 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20041208/7f6b0e3b/step1.gif
-------------- next part --------------
A non-text attachment was scrubbed...
Name: step2.gif
Type: image/gif
Size: 3106 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20041208/7f6b0e3b/step2.gif
-------------- next part --------------
A non-text attachment was scrubbed...
Name: step3.gif
Type: image/gif
Size: 3147 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20041208/7f6b0e3b/step3.gif
-------------- next part --------------
A non-text attachment was scrubbed...
Name: step4.gif
Type: image/gif
Size: 3907 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20041208/7f6b0e3b/step4.gif


More information about the Squeak-dev mailing list