On 14 April 2017 at 10:19, Stephane Ducasse <stepharo.self@gmail.com> wrote:
But I do not get how doing that would handle the old instances? Because you want to migrate the old instances.
+1 there are no such thing as 'bad zombies', if they are there, it means you either don't care about migrating data or again, don't care about doing #becomeForward-ing them properly. In any case i don't see how GC could help to fix these issues. You either have consistency or don't have it, and GC cannot do anything magical to fix it.
Stef
On Wed, Apr 12, 2017 at 1:26 PM, Denis Kudriashov <dionisiydk@gmail.com> wrote:
2017-04-12 13:17 GMT+02:00 Guillermo Polito <guillermopolito@gmail.com>:
1) each instance of A is becomed into its corresponding instance of A' 2) finally we become class A into A' This step will make that old instances of A now have: - the old format - but point to the new class A
step 1) ensures that there are no instances of class A anymore. Check following script:
c1 := Class1 new. c2 := Class2 new. c1 becomeForward: c2. Class1 allInstances "=> #()".
And full migration is executed in high priority uninterrupted process to ensure that between 1) and 2) nobody will instantiate Class1
-- Best regards, Igor Stasenko.