
On Sat, Apr 21, 2007 at 10:32:08PM +1000, Duncan Coutts wrote:
I have a patch, I'll send it soonish (probably Monday) for other people to review and test.
It's a general change to the way Cabal does pre-processing. Instead of generating the .hs files in place in the source tree we put them all in a special build tree in the dist dir (like where we put the .o and .hi files, but not actually the same directory).
I've been meaning to do something like that, to get the generated files under dist, and to separate out the compiler-independent part of the code. There should be no need for the compiler-specific parts to worry about main-is or hs-source-dirs, when the first phase can handle those. Another benefit is that we could include compiler-independent preprocessor output (where possible) in source distributions. If the package is built in an environment lacking that preprocessor, it can use the shipped output. If the preprocessor is available, it can run it with compiler-specific flags (e.g. happy -agc). Not all preprocessors can produce compiler-independent output, though.