[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