[DGD]kernel cloning and inheriting

Felix A. Croes felix at dworkin.nl
Thu Feb 15 17:26:32 CET 2001


Stephen Schmidt <schmidsj at union.edu> wrote:

>[...]
> Let me see if I have this straight; I'm pretty sure at
> some level I don't. Consider three objects, A, Ac, and B.
> Ac is a clone of A; B inherits A.

In the kernel library, inheritables are not clonable, but I
assume that you are talking about the general case.


> 1. You can recompile B because nothing inherits it.
> 2. You cannot recompile Ac because it is a clone; to recompile
>    Ac is basically to recompile A.

Yes.  Recompiling Ac is impossible, but if you could recompile A,
all clones would be upgraded as well.


> 3. You cannot recompile A because B inherits it.
> 4. You could recompile A if you first destructed B, but then
>    object B would be lost. In a persistant world, the loss of
>    B during the recompilation of A could be problematic.
> 5. You could recompile both B and A if Ac did not exist. (?)
>    The root problem is that if you try to recompile A in
>    the presence of Ac, then Ac is forced to change along
>    with B, and Ac might not want to do that.

If Ac did not exist, and A was a pure inheritable object, you could
have upgraded A and B with the following sequence:

    destruct A
    recompile B (will automatically compile A also)

As it is, you can still do this, but of course the state of A will
be lost thereby.  If A was a pure inheritable/clonable without its
own state, you can do this without negative effects on A and B.
Ac, however, will continue to use the old program of A, since A
was destructed before it was recompiled.  Only if A had been
recompiled without deing destructed first -- impossible because of
B -- would ac have been upgraded also.

Regards,
Dworkin

List config page:  http://list.imaginary.com/mailman/listinfo/dgd



More information about the DGD mailing list