[DGD]compile_object() kfun

Felix A. Croes felix at dworkin.nl
Wed Mar 14 00:11:06 CET 2001


Stephen Schmidt <schmidsj at union.edu> wrote:

> I got a bug report on Melville, noting that when changes 
> were made to add soul commands or add new channels, they
> did not take effect when the files were updated; a reboot
> was necessary.
>
> Some testing shows that this is the case, but when /obj/spam.c
> is modified, the changes do take place. Also if changes are
> made to the code of soul_d.c, then updating works.
>
> I observe that adding new soul commands and adding new
> channels does not require changing the file being updated
> (soul_d.c or channel_d.c, respectively) in any way. In one
> case a data file is changed - in the other case, an #included
> file is changed.
>
> My theory is that, when DGD compiles an object that is already
> loaded, it looks at the time the file was last modified, or
> in some other way looks to see if the code has been changed
> since the object was first compiled. If not, it aborts the
> compile. Or something like that. That explains why when you
> make changes outside the file you're updating, updating has
> no effect, but when you make changes inside the file you're
> updating, it does.
>
> Can anyone confirm or deny? In the latter case, can anyone
> propose an alternative hypothesis about what's going on?

My alternative hypothesis is that since recompiling an existing
object does not call create() in the object, the object is not
re-initialized and keeps using the old data.

Regards,
Dworkin

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



More information about the DGD mailing list