contrast, Cabal stores all generated files in a separate directory
(compiler/dist-stage[1/2]), and thus doesn't need to look at relative
timestamps; so it gets confused by the old, leftover Parser.hs et al.
While that is cleaner, it also takes some getting used to, as generated
sources are no longer in source directories - then again, they aren't
often readable anyway, and perhaps there will be fewer things to go
wrong with them.
It is confusing, though, that Cabal silently uses compiler/parser/Parser.hs,
if it is meant to generate and use compiler/dist-stage[12]/Parser.hs.
There should be a Cabal warning:
"variant of generated file in source dir, using that instead of generated file".
Ironically this is another reason that switching to Cabal is a win --
cleaning of preprocessed files happens automatically. Unfortunately,
though, it looks like all of those leftover preprocessed files will
need to be deleted manually (but only this one time). The following
command worked for me (run inside the 'compilers' directory);
find . -name "*.x" -or -name "*.y" -or -name "*.hsc" | sed
's/\(.*\)\..*/\1.hs/' | xargs rm
What about '*.pp'? Any others? Cabal warnings would really help.
./compiler/parser/Parser.y.pp
./compiler/parser/Parser.y
./compiler/prelude/primops.txt.pp
./compiler/prelude/primops.txt
Claus
_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc