DPH libs are re-haddocked every time
marlowsd at gmail.com
Thu Dec 31 09:34:00 EST 2009
If you have HADDOCK_DOCS enabled, then every 'make' will re-haddock the
DPH libraries, which is rather annoying.
I've done some investigation, here's what I've discovered:
* When we run Haddock on DPH, Haddock must actually compile
to object code, because they involve TH (actually annotations).
* Haddock doesn't get to use the existing object code, because
Cabal first copies every source file into a temporary location
during the preprocessing phase.
* The new .o files overwrite the old .o files, because Cabal is
passing the same -odir -osuf etc. flags to Haddock that it uses
when compiling. I'm not sure, but I think the DPH libs that we ship
in 6.12.1 are actually compiled by Haddock :-)
* The next time make is invoked, the object files have been touched,
which causes a knock-on effect requiring Haddock to be run again.
Now, the way I think it should work is that we shoudn't be doing any
preprocessing at all, and Haddock should be run on the same source files
that the build system is using. Hence Haddock will get to re-use the
existing object files, things will be much quicker, and Haddock won't
touch anything it shouldn't.
More information about the Cvs-ghc