How to force recompilation of preprocessed files (-F -pgmF ..)

Etienne Laurin etienne at atnnn.com
Thu May 17 11:26:02 CEST 2012


Hello Simon,

You can use Template Haskell's addDependentFile to register a
dependency on external files.

http://hackage.haskell.org/packages/archive/template-haskell/2.7.0.0/doc/html/Language-Haskell-TH-Syntax.html#v:addDependentFile

You can also put -fforce-recomp in an OPTIONS_GHC pragma to ask GHC to
always recompile the file.

{-# OPTIONS_GHC -fforce-recomp #-}

Etienne Laurin

2012/5/17 Simon Hengel <sol at typeful.net>:
> Hi,
> I'm experimenting with a preprocessor to automatically generate test
> drivers[1].  The result depends on the existence of other files on the
> disk.  When files are added or removed, the test driver has to be
> regenerated.
>
> Ideally ghc would just always recompile that single file (akin to make's
> .PHONY), and it should work with ghci's :reload and with cabal.
>
> I tried to touch the file within the preprocessor, but this does not
> work.  It seems, that GHC checks the modification time only after
> preprocessing.
>
> Any ideas how to tackle this?
>
> Cheers,
> Simon
>
> [1] https://github.com/sol/hspec-discover



More information about the Glasgow-haskell-users mailing list