1

I've noticed that my asdf:defsystem :components (with dependencies) are not always recompiled following changes. Specifically, when reverting to a previous version of a file (keeping the same filename), recompilation does not occur. (But normal internal editing of a file does trigger recompilation.) Can defsystem be configured to handle all such file changes?

ASDF system definition:

(asdf:defsystem "planner_project"
    :depends-on (:alexandria)
:components ((:file "generic_utilities")
         (:file "hash_stack")
         (:file "translator")
         (:file "planner" :depends-on ("translator"))
         (:file "bnb" :depends-on ("hash_stack" "planner"))
         (:file "problem" :depends-on ("translator"))))
Vatine
  • 20,782
  • 4
  • 54
  • 70
davypough
  • 1,847
  • 11
  • 21
  • Are you using git? did you check the timestamps of your files? can you provide more details, something people coud try to reproduce? – coredump Nov 04 '16 at 18:03
  • Here's my asd file: (asdf:defsystem "planner_project" :depends-on (:alexandria) :components ((:file "generic_utilities") (:file "hash_stack") (:file "translator") (:file "planner" :depends-on ("translator")) (:file "bnb" :depends-on ("hash_stack" "planner")) (:file "problem" :depends-on ("translator")) )) but all component files are local. Overwriting a file with a prior version (different timestamp) is not being recompiled during (asdf:load-system "planner_project"). Using SBCL under Windows 10. – davypough Nov 04 '16 at 20:46
  • Thanks, I could test it, and I witness the same behavior. Btw, you can also write `(asdf:make :planner_project)`. I'll try to look at this a little more when I have more time. – coredump Nov 04 '16 at 20:59
  • "Last write time" goes back in time when copying "old version" as "new"; see also : https://stackoverflow.com/questions/9992223/file-getlastwritetime-seems-to-be-returning-out-of-date-value, https://stackoverflow.com/questions/1448716/net-fileinfo-lastwritetime-fileinfo-lastaccesstime-are-wrong. In any case, `(asdf:make ... :force t)` recompiles everything. – coredump Nov 04 '16 at 21:12
  • @coredump I'm not very familiar with asdf yet. Can you show me how to rewrite portions of my asd file to incorporate your recommendations--ie, make & :force t? – davypough Nov 05 '16 at 04:09
  • OK, finally get it. Works, thanks. – davypough Nov 07 '16 at 04:51
  • Sorry, I couldn't reply earlier. Glad you made it work. As for the time issues, maybe you should try to contact the asdf maintainer. – coredump Nov 07 '16 at 12:35

0 Answers0