[racket-dev] bug in compiler ext dependencies?
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.hammer at dlr.de
> _________________________
> Racket Developers list:
> http://lists.racket-lang.org/dev