The build is broken (Solaris/x86, FreeBSD/{i386,amd64})

The failing command: "inplace/bin/ghc-stage2" -hisuf dyn_hi -osuf dyn_o -hcsuf dyn_hc -fPIC -dynamic -H32m -O -hide-all-packages -i -iutils/haddock/driver -iutils/haddock/src -iutils/haddock/vendor/attoparsec-0.10.4.0 -iutils/haddock/dist/build -iutils/haddock/dist/build/autogen -Iutils/haddock/dist/build -Iutils/haddock/dist/build/autogen -optP-DIN_GHC_TREE -optP-include -optPutils/haddock/dist/build/autogen/cabal_macros.h -package Cabal-1.18.1.3 -package array-0.5.0.0 -package base-4.7.0.0 -package bytestring-0.10.4.0 -package containers-0.5.5.1 -package deepseq-1.3.0.2 -package directory-1.2.1.0 -package filepath-1.3.0.2 -package ghc-7.9.20140414 -package xhtml-3000.2.1 -funbox-strict-fields -Wall -fwarn-tabs -O2 -XHaskell2010 -no-user-package-db -rtsopts -odir utils/haddock/dist/build -hidir utils/haddock/dist/build -stubdir utils/haddock/dist/build -c utils/haddock/src/Haddock/Interface/Create.hs -o utils/haddock/dist/build/Haddock/Interface/Create.dyn_o utils/haddock/src/Haddock/Interface/Create.hs:367:44: Couldn't match type 'GenLocated SrcSpan (HsBindLR Name Name)' with '(a1, Located (HsBind id))' Expected type: TyClDecl Name -> Bag (a1, Located (HsBind id)) Actual type: TyClDecl Name -> LHsBinds Name Relevant bindings include defs :: [Located (HsDecl id)] (bound at utils/haddock/src/Haddock/Interface/Create.hs:367:5) In the second argument of '(.)', namely 'tcdMeths' In the second argument of '(.)', namely 'bagToList . tcdMeths' utils/haddock/src/Haddock/Interface/Create.hs:393:22: Couldn't match type 'GenLocated SrcSpan (HsBindLR Name Name)' with '(a0, Located (HsBind Name))' Expected type: HsValBindsLR Name Name -> [(a0, Located (HsBind Name))] Actual type: HsValBindsLR Name Name -> [LHsBindLR Name Name] In the first argument of '(.)', namely 'valbinds' In the second argument of '(.)', namely 'valbinds . hs_valds' gmake[1]: *** [utils/haddock/dist/build/Haddock/Interface/Create.dyn_o] Error 1 gmake: *** [all] Error 2 Please consult the details at http://haskell.inf.elte.hu/builders/solaris-x86-head/28/10.html

Hi, (probably) fixed by http://git.haskell.org/ghc.git/commitdiff/b4a820f97e48199a92f5ce7216731500f9... On 2014-04-14 at 09:15:42 +0200, Páli Gábor János wrote: [...]
utils/haddock/src/Haddock/Interface/Create.hs:367:44: Couldn't match type 'GenLocated SrcSpan (HsBindLR Name Name)' with '(a1, Located (HsBind id))' Expected type: TyClDecl Name -> Bag (a1, Located (HsBind id)) Actual type: TyClDecl Name -> LHsBinds Name Relevant bindings include defs :: [Located (HsDecl id)] (bound at utils/haddock/src/Haddock/Interface/Create.hs:367:5) In the second argument of '(.)', namely 'tcdMeths' In the second argument of '(.)', namely 'bagToList . tcdMeths' utils/haddock/src/Haddock/Interface/Create.hs:393:22: Couldn't match type 'GenLocated SrcSpan (HsBindLR Name Name)' with '(a0, Located (HsBind Name))' Expected type: HsValBindsLR Name Name -> [(a0, Located (HsBind Name))] Actual type: HsValBindsLR Name Name -> [LHsBindLR Name Name] In the first argument of '(.)', namely 'valbinds' In the second argument of '(.)', namely 'valbinds . hs_valds' gmake[1]: *** [utils/haddock/dist/build/Haddock/Interface/Create.dyn_o] Error 1 gmake: *** [all] Error 2
Please consult the details at
http://haskell.inf.elte.hu/builders/solaris-x86-head/28/10.html

Hey Gergo, It looks like this failure came from one of your commits, which didn't include a submodule update. One trick that I find very useful for making sure that I haven't missed any files when submitting a patch is to always run 'git status' before I push, and carefully look at all the output, especially staged but not committed changes. I think Simon Marlow is even more conservative, and does his validate builds in a separate tree so he catches missing files. Edward Excerpts from Herbert Valerio Riedel's message of 2014-04-14 00:17:51 -0700:
Hi,
(probably) fixed by
http://git.haskell.org/ghc.git/commitdiff/b4a820f97e48199a92f5ce7216731500f9...
On 2014-04-14 at 09:15:42 +0200, Páli Gábor János wrote:
[...]
utils/haddock/src/Haddock/Interface/Create.hs:367:44: Couldn't match type 'GenLocated SrcSpan (HsBindLR Name Name)' with '(a1, Located (HsBind id))' Expected type: TyClDecl Name -> Bag (a1, Located (HsBind id)) Actual type: TyClDecl Name -> LHsBinds Name Relevant bindings include defs :: [Located (HsDecl id)] (bound at utils/haddock/src/Haddock/Interface/Create.hs:367:5) In the second argument of '(.)', namely 'tcdMeths' In the second argument of '(.)', namely 'bagToList . tcdMeths' utils/haddock/src/Haddock/Interface/Create.hs:393:22: Couldn't match type 'GenLocated SrcSpan (HsBindLR Name Name)' with '(a0, Located (HsBind Name))' Expected type: HsValBindsLR Name Name -> [(a0, Located (HsBind Name))] Actual type: HsValBindsLR Name Name -> [LHsBindLR Name Name] In the first argument of '(.)', namely 'valbinds' In the second argument of '(.)', namely 'valbinds . hs_valds' gmake[1]: *** [utils/haddock/dist/build/Haddock/Interface/Create.dyn_o] Error 1 gmake: *** [all] Error 2
Please consult the details at
http://haskell.inf.elte.hu/builders/solaris-x86-head/28/10.html

On 2014-04-15 at 06:52:42 +0200, Jan Stolarek wrote:
I think Simon Marlow is even more conservative, and does his validate builds in a separate tree so he catches missing files.
I thought everyone is doing that.
Btw, using such a workflow[1] is actually almost a necessity if you want to continue working on GHC while a longish validate is running in the background... otherwise you're blocked till validate completes. Cheers, hvr [1]: like e.g. https://ghc.haskell.org/trac/ghc/wiki/WorkingConventions/Git#Workflowwithval... (fwiw, I meant to write up a variant not relying on sync-all)

On 15/04/14 05:52, Jan Stolarek wrote:
I think Simon Marlow is even more conservative, and does his validate builds in a separate tree so he catches missing files. I thought everyone is doing that.
It's the recommended workflow, but I must admit it doesn't always work out, and nowadays I often just work in one tree. The problems arise when your patches don't validate, and you have to go and fix something - you don't want to go back to the working tree and test a new fix, you want to just fix it in the validate tree and validate again. So pretty soon you end up just working in the validate tree, especially when you're working on lots of small fixes. For larger branches a separate working tree works fine. The best way to solve this problem is going to be automation, where we submit the patch to a validate bot and get the results later. Wasn't Joachim working on this? Cheers, Simon
participants (7)
-
Dr. ERDI Gergo
-
Edward Z. Yang
-
Herbert Valerio Riedel
-
Herbert Valerio Riedel
-
Jan Stolarek
-
Páli Gábor János
-
Simon Marlow