[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