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.