[DGD] Failed Inheritance and Object Daemon

Noah Gibbs noah_gibbs at yahoo.com
Sat Aug 27 07:56:02 CEST 2005


  That's the sort of case that's the reason that my ObjectD and Geir Harald
Hansen's both keep multiple issues around.  Though yeah, it can get a little
complicated.

  You can use atomic functions to prevent this problem, but it'll only work up
to a certain number of objects - beyond that, having to swap in a whole bunch
of objects gets too slow, or bigger than available memory.

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

> I've been thinking about ways of setting up an object daemon, and previous
> ideas of 
> mine have been overly complicated, so I've always had trouble starting them, 
> especially since it seemed like I'd always come up with some sort special
> case I 
> didn't know how to handle. My brother suggested the K.I.S.S rule, pointing
> out that I 
> can assume regular statedump backups and a testmud. So I figured I'd just
> have all 
> objects up-to-date all the time. But I've never been too sure of the best way
> to handle 
> the following situation... 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'm leaning towards option 1, because it's much simpler and requires less
> code, and I 
> figure the admins would probably do backups before updating any major part of
> the 
> mudlib, and at least test it out on a testmud. Does this sound reasonable?
> (keep in 
> mind that this means if the OBJECT inheritable fails to compile, the entire
> mud 
> vansihes without a trace... but hey, there's backups and a testmud, right?)
> Does 
> anybody have any other ways of doing it? Any ideas/opinions are much
> appreciated!
> 
> -Steve Wooster
> 
> PS, this is mostly a learning experience... I don't expect to have a mud
> running any 
> time soon, so there's no need to point out that making your own object daemon
> is 
> riddled with pitfalls.
> 
> __________________________________________
> http://mail.dworkin.nl/mailman/listinfo/dgd
> 





		
____________________________________________________
Start your day with Yahoo! - make it your home page 
http://www.yahoo.com/r/hs 
 



More information about the DGD mailing list