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

Eliot Miranda eliot.miranda at gmail.com
Mon May 28 19:57:22 UTC 2018


Hi Max,


> On May 27, 2018, at 2:44 PM, Max Leske <maxleske at gmail.com> wrote:
> 
> 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.

Do you have ideas about where the bug lies?


> 
> Cheers,
> Max


_,,,^..^,,,_ (phone)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20180528/d57db01f/attachment.html>


More information about the Squeak-dev mailing list