[DGD]inherit_list

Tim Vernum tpv at acay.com.au
Sun May 20 07:32:41 CEST 2001


I'm kind of a DGD neophyte (ie, I've never actually done
 heavy DGD work).

I was planning of adding a recursive recompile command, but am having a
problem.

Assmue the setup:
	A inherits B inherits C.

If I recompile A, then DGD/Kernel lib will recompile B iff, B is
"out of date", where out of date means "inherits an old version of C".
But what if I change the source code for B. DGD doesn't pick that up,
so it doesn't call recompile in the driver, and there's nothing much
I can do.

The only way I can see for it to work is to either:
 Destruct B, or somehow mark B as being out of date.

The LPMud experience in me, immediaetly turned to an inherit_list kfun,
so I could walk my way up it, deleting each object.
I acn't find sucha kfun, so that's out.

The other thing I could do is hook into inherit_program in the driver
and keep my own inherit list, but that seems like a bit of a mess.

My last option is to delete the auto object.
That should mke all objects in the mud as being out of date, and
try and recompile them as needed, but that seem a bit heavy handed.

I see in an old mail from Dworkin that he recommended keeping an
inherit list database in the mudlib.
Is that still recommended?
I would expect that DGD knows the inherit chain already - wouldn't it
be more efficient to be able to ask the driver, rather than track it
yourself?

And on a separate issue, why does the kernel lib require that you have
write access to an object to compile it? 
It would appear to be a read operation? Why write? 

-- 
 -= [     Tim Vernum     ] =-   "Cause I don't wanna be a container,     
 -= [  tpv @spamcop.net  ] =-    Or a bastard with a 10 page disclaimer." 
 -= [    BeOS powered    ] =-        - Something for Kate, "Monsters"      

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



More information about the DGD mailing list