[DGD]Inherit_Program called twice?

E. Harte harte at xs4all.nl
Thu Mar 23 12:03:30 CET 2000


On Wed, 22 Mar 2000, Kevin N. Carpenter wrote:

> I have a stripped down mudlib I'm using to develop my object manager and
> have just spent the last hour trying to figure something out.  It appears
> that the driver function "inherit_program" is being called twice during an
> object compilation.  I highly suspect this is something in my code, because
> that doesn't make any sense, but I sure can't find it.  Only 4 objects are
> involved: The driver, inheritable auto, object user, and inheritable by user
> userbase object.
> 
> The driver object forces a compile of the auto object.
> The driver object forces a compile of the user object.
> The user object inherits a file called userbase which forces a call to the
> driver function inherit_program().
> The inherit_program() forces a compile of the userbase object.
> That compile finished, along with some book keeping.
> ** Then, to my surprise, it appears that inherit_program() is called in the
> driver a second time for the same file, user, for the same program,
> userbase. **
> Since userbase is already compiled, this finishes quickly, but it still
> seems odd.
> I scanned all my code, it definitely DOES NOT call inherit_program directly.
> 
> Any ideas?  This is running under Redhat Linux 6.1 on an Dual Processor
> server.

Yes, it's the normal way of things to happen in DGD, nothing to do with
your OS or hardware. :-)

DGD only fully compiles one object at a time.

If you compile object A which inherits object B which has to be compiled
first, it'll finish compiling object B and then start the compilation of
object A from the start.

If you add debug statements in the path_include() driver-function you'll
find it calls those functions again as well.

Hope this helps,

Erwin.
-- 
Erwin Harte  -  Forever September, 2396 and counting  -  harte at xs4all.nl


List config page:  http://list.imaginary.com/mailman/listinfo/dgd



More information about the DGD mailing list