Hi,i think i found a bug in the handling of external dependencies (via register-external-file) in compiler/cm. Currently if an external dependency gets deleted after the registering file was compiled, it is not recompiled because a missing file does not trigger a file changed or timestamp newer condition.
With the attached patch a missing file is simply treated as newer than everything. Would that be the correct behavior?
Reproduce with: ;; ----- test.rkt #lang racket (require (for-syntax compiler/cm-accomplice)) (begin-for-syntax (printf "compiled\n") (register-external-file (path->complete-path "ext-dep")) (with-output-to-file "ext-dep" #:exists 'replace values)) ;; --- current # raco make sample.rkt
compiled
# raco make sample.rkt # rm ext-dep # raco make sample.rkt << Missing "compiled" ;; --- patched # raco make sample.rkt
compiled
# raco make sample.rkt # rm ext-dep # raco make sample.rkt
compiled
-- --------------------------------------------------------- Tobias Hammer DLR / Robotics and Mechatronics Center (RMC) Muenchner Str. 20, D-82234 Wessling Tel.: 08153/28-1487 Mail: tobias.ham...@dlr.de
ext-dep.patch
Description: Binary data
_________________________ Racket Developers list: http://lists.racket-lang.org/dev