[asdf-devel] Where's the ASDF source for checking for updated files?
fahree at gmail.com
Thu Jun 9 18:18:06 UTC 2011
A user question:
011 13:28, Erik Winkels <aerique at xs4all.nl> wrote:
> I'm not sure whether ASDF is the culprit here but I need some help tracking down a problem I'm having:
> I'm developing a program which gets called from the command line so I'm also testing it like that. i.e. I'm using the classic C'ish compile-save-run cycle for development. I am also using ASDF for running the program.
> What happens is that when I make a change in my source files ASDF doesn't seem to pick up the changes when loading the system. This happens when the changes are done within one minute of eachother.
> A workaround is using an interactive Emacs+Slime environment but I am also interested in tracking this bug down.
> Do you have anu suggestions where I should start looking in asdf.lisp? I opened it in Emacs but couldn't find my way around.
> Thanks, Erik
It's hard to debug from such flimsy information.
How do you "use ASDF" to run the program in a compile-save-run way?
Your problem is likely clock skew, resolution or known race condition.
Or it might be (unlikely) a bug in ASDF
(or one of its extension, if you're using any).
I remember once having to fix an infinite loop when
the filesystem server has time skew in the future from the current host.
There is infinite loop no more, but
time skew is probably still "interesting".
Additionally, the resolution of the timestamps is usually one second,
which might not be enough to distinguish the need to recompile,
if your edit-compile cycle is very short.
Finally, and there's an unavoidable race condition
if you modify a file while it is being compiled.
Oh, and if you disabled asdf output-translations
while compiling files with SLIME, the fasls may clash.
To debug, you might want to trace asdf:operation-done-p and/or
safe-file-write-date and get-universal-time.
In the future, XCVB will replace ASDF's timestamp change detection
with change detection based on cryptographic digests of file contents.
We're almost there — care to help?
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Well, the fact is, God does exist and I'm His prophet. And my prophecy is
that you shouldn't believe in God, for it would be a blasphemy against His
gift of Reason to you. So don't you believe in Him, lest you go to Hell!
More information about the asdf-devel