[squeak-dev] Don't rely on weak reference cleanup for lookup of undeclared references

Max Leske maxleske at gmail.com
Sun May 27 21:44:40 UTC 2018


Hi,

Once again, there's a situation in the Fuel test suite that uncovered an
issue. Consider the following script:

Object subclass: #Foo
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'Kernel-Classes'.
10 timesRepeat: [(Smalltalk at: #Foo) rename: #Bar.
(Smalltalk at: #Bar) rename: #Foo ]

In 5.2-alpha this will open a warning dialog, as at some point one of the
class names will be undeclared. Class>>rename: only checks for an entry in
the undeclared dictionary without considering that the weak references may
not yet have been cleaned up.

I understand that this is not really a realistic real world use-case but
it's still annoying for tests. My current workaround is a forced GC after
*every* test in the entire suite (I use ClassFactoryForTestCase, so class
names may be reused many times over). Luckily, the impact on runtime isn't
too bad.

I'd appreciate it if this could be fixed. I'd be even more happy if I could
be notified of the fix, so that I can remove the workaround again.


Cheers,
Max
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20180527/0877e3d0/attachment.html>


More information about the Squeak-dev mailing list