[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
|