I've pushed your repair - thanks! I think I found (and fixed) similar problems with `require' and deleted files.
At Mon, 10 Jun 2013 09:48:42 +0200, Tobias Hammer wrote: > 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 > _________________________ > Racket Developers list: > http://lists.racket-lang.org/dev _________________________ Racket Developers list: http://lists.racket-lang.org/dev