
On 05/15/2013 10:24 AM, Jan Stolarek wrote:
Fellow developers,
I need advice on using GHC build system. Recently I've been spending more time on resolving problems with the build system itself than on developing GHC, and this is not how things are supposed to be. I have found testsuite and validation to be very unreliable - things seem to break randomly and results are not repeatable. I suspect that I might be doing something wrong and I will appreciate any advice or explanations why I'm having these problem.
I have three GHC trees: * ghc-working - source tree I use for development * ghc-build - lndir'ed to ghc-working, used for building * ghc-validate - source tree used for validation, ghc-working is set up as one of the remotes
Here's the situation from yesterday evening. I updated ghc-working and ghc-validate trees from the origin - according to the fingerprint.py script both trees were identical. I ran validation in ghc-validate and ghc-build trees (on the master branches, no my changes). The only difference between them should be that ghc-build is symlinked. Validation in ghc-validate passed with two failures (others on IRC confirmed they are having same failures), while validation in ghc-build failed with:
Haddock coverage: 100% ( 1 / 1) in 'GHC.IntWord64' 78% ( 7 / 9) in 'GHC.Types' 17% ( 1 / 6) in 'GHC.CString' 3% ( 2 / 63) in 'GHC.Tuple' 0% ( 0 / 3) in 'GHC.Debug' 0% ( 0 /342) in 'GHC.PrimopWrappers' 30% (160 /531) in 'GHC.Prim' 100% ( 3 / 3) in 'GHC.Magic' 38% ( 6 / 16) in 'GHC.Classes' haddock: internal error: /dane/uczelnia/projekty/ghc-build/inpl ace/lib/html/Ocean.std-theme/ocean.css: copyFile: does not exis t (No such file or directory) gmake[1]: *** [libraries/ghc-prim/dist-install/doc/html/ghc-pri m/ghc-prim.haddock] Błąd 1 gmake[1]: *** Kasuję plik `libraries/ghc-prim/dist-install/doc/ html/ghc-prim/ghc-prim.haddock'
Today I ran ./sync-all pull in both trees, but no new commits were added (according to fingerprint). I run the validation again and the validation in ghc-build fails as previously, while the validation in ghc-validate reports over 200 unexpected failures. What is more, I found that rerunning some of the failing tests (make TEST=whatever) often results with these tests passing. This unreliability is very frustrating.
I've been having these problems since I started working on GHC in December. I'm wondering whether this is a common thing or am I doing something not-so-obviously wrong? As usual, I will appreciate any advice from those more experienced than me.
Janek
The haddock failure you're seeing is caused by using relative symlinks with lndir. See #7879. I don't know what your other failures are, so I can't speak to them. Perhaps you have different library versions checked out in different trees; you could check whether or not this is the case by looking at the various trees' fingerprints. Personally, I think the current mix of git submodules and non-git submodule dependencies is horrible. It makes it impossible to check out a consistent tree without a full fingerprint while also incurring all the disadvantages of submodules. Geoff