On Fri, Dec 23, 2011 at 04:51:58PM +0100, Levente Uzonyi wrote:
On Fri, 23 Dec 2011, David T. Lewis wrote:
The image side changes were part of Squeak 4.2, and VM changes happened before that. I think that all the VMs currently in circulation will have this support, but I'm not certain of it.
Eliot's CogVMs don't have this patch.
Oh! I'm afraid you are right, I did not notice that.
For reference, the weak finalization enhancement with original change sets for Cog and squeak VM is on Mantis: http://bugs.squeak.org/view.php?id=7473
On Fri, Dec 23, 2011 at 04:57:02PM +0100, Levente Uzonyi wrote:
On Fri, 23 Dec 2011, David T. Lewis wrote:
There's still a very small window during startUp while the value of HasNewFinalization can be incorrect and it seems to be really hard to fix it from the image side. I don't know if this can cause any problems, but a new primitive for checking the availability would have been a better choice IMHO.
Yes a primitive or VM parameter might have been better, although it's probably too late to worry about it now.
I think that in practice this is harmless, since any problems should be corrected once the new weak finalization process has started running. But a related concern may be that the weak finalization process is terminated before the new one is started, and it is probably not a good idea to terminate that process if it might be in the middle of e.g. finalizing values in a WeakKeyDictionary. Again this is probably not an issue in practice, but it does look a bit dangerous.
Dave