New finalization + migration

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

New finalization + migration

Igor Stasenko
Hello,

here the latest version of scripts , which supposed to work in both
pharo and squeak
(except that pharo still missing some prerequisites like
HashedCollection and WeakKeyDictionary changes).

I added some class comments, and did some refactoring.

Install files in following order:

phase-0.cs
phase-1-weakfinalizationlist.st
phase-1-weakfinalizationregistry.st
phase-1-weakfinalizeritem.st
phase-2-finalizationprocess.1.cs
phase-3-migrating.1.cs

I split it on phases to indicate the boundaries of mcz packages.

It works well on latest 4.2 images under Squeak VM and Cog.
It doesn't requires updated VM (things are keep working under older
VMs, it just don't using new functionality).

Please, examine the #migrateOldRegistries method in
WeakFinalizationRegistry class side.
It may be a little bit buggy, since i want to replace one class with
another and not sure how to do it correctly
(Just stop before phase 3, where WeakFinalizationRegistry is not yet
made to be WeakRegistry).

If there is everything ok, then with help of some generous soul, these
changes can be pushed in trunk, because i have no idea
how to generate a proper .mcd configs in order to load these changes
in right order.

P.S. Reminder to Eliot: I am also uploaded the Cog VM changes on
mantis (http://bugs.squeak.org/view.php?id=7473),
in case if you miss it in my previous mail.

--
Best regards,
Igor Stasenko AKA sig.



new finalization.zip (10K) Download Attachment