[DGD] compile_object / inherited objects.

Felix A. Croes felix at dworkin.nl
Thu Jan 15 13:50:14 CET 1998


[The following might be of interest to this list.]


>From felix Thu Jan 15 14:46:27 1998
To: kult at uni-paderborn.de
Subject: Re: DGD: compile_object / inherited objects.

> I have a hierarchy of objects in memory and want to make sure none of those
> ever use obsolete code. For normal objects I simply call compile_object so
> they and their clones are updated. Objects that are inherited somewhere,
> however, can't be treated this way: "Cannot recompile inherited object".
> Does this never, ever work? Perhaps a newer version (I'm using 1.1p2
> compiled for Solaris; a newer version would not cause any problems)?
> Or is there another way to achieve up-to-date objects (other than doing it
> "manually")?

For inherited objects, it cannot be done, nor will this ever change.

This is one of the big reasons behind the strict separation of inherited
and other objects in DGD's kernel library: inherited objects cannot even
have their functions called.  This allows you to keep a whole tree of
objects up to date by destructing the inherited objects and recompiling
the others: since inherited objects are all without data, nothing is
lost when they are destructed.  As long as the leaf objects in the tree
(the uninherited ones) are being kept up to date, there will only be one
copy of every inherited object around.

In the mudlib that I currently have under development, a database is
maintained for "inherited by" object relations, allowing one to
automatically upgrade a whole inheritance tree if one object has to
be changed.

Regards,
Dworkin



More information about the DGD mailing list