[DGD] Failed Inheritance and Object Daemon

Felix A. Croes felix at dworkin.nl
Sat Aug 27 08:18:01 CEST 2005


"Steve Wooster" <swdgd at intergate.com> wrote:

>[...]
> Let's say I have some standard library object A, and a group 
> of coders/builders makes their own library object B which inherits A and defines 
> foobar(). Assume there's numerous objects inheriting B. Now let's say I don't know 
> about B, and I add foobar() to A, and make it nomask, then try to update it. After 
> updating A, the mud tries to update B, but gets a compile error due to conflicting 
> functions. There's only two ways I can think to handle that...
>
> 1. I can't update the objects inheriting B, so unless I destroy them all, they'll all be 
> using an out-of-date version of A's code. But I want to keep everything up-to-date at 
> all times, so I destroy B and everything inheriting it (perhaps deleting a significant 
> portion of the mud) and give a list of object types destroyed.
>
> 2. Revert to the previous version of A's code and fail to update it. I think this would 
> either be innefficient or require a lot more work for me.

I'd recommend the following: make the upgrade action atomic, so that
when object B fails to compile because it redefines a function that
is now nomask in object A, the upgrade of both A and B is rolled back.

Regards,
Dworkin



More information about the DGD mailing list