Date: Thu, 15 Feb 2001 17:26:32 +0100 (CET) From: "Felix A. Croes" Subject: Re: [DGD]kernel cloning and inheriting Stephen Schmidt 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