[GHC] #9219: Parallel build proceeds despite errors
GHC
ghc-devs at haskell.org
Thu Jun 19 13:59:34 UTC 2014
#9219: Parallel build proceeds despite errors
-------------------------+-------------------------------------------------
Reporter: | Owner:
jstolarek | Status: new
Type: bug | Milestone:
Priority: | Version: 7.8.2
normal | Operating System: Unknown/Multiple
Component: | Type of failure: Incorrect warning at
Driver | compile-time
Keywords: | Test Case:
Architecture: | Blocking:
Unknown/Multiple |
Difficulty: |
Unknown |
Blocked By: |
Related Tickets: |
-------------------------+-------------------------------------------------
A few weeks back during my work on singletons I got the following build
log:
{{{
Building singletons-1.0...
Preprocessing library singletons-1.0...
[ 6 of 45] Compiling Data.Singletons.Util ( src/Data/Singletons/Util.hs,
dist/build/Data/Singletons/Util.o )
[ 7 of 45] Compiling Data.Singletons.Syntax (
src/Data/Singletons/Syntax.hs, dist/build/Data/Singletons/Syntax.o )
[Data.Singletons.Util changed]
[ 8 of 45] Compiling Data.Singletons.Names ( src/Data/Singletons/Names.hs,
dist/build/Data/Singletons/Names.o ) [Data.Singletons.Util changed]
[ 9 of 45] Compiling Data.Singletons.Promote.Monad (
src/Data/Singletons/Promote/Monad.hs,
dist/build/Data/Singletons/Promote/Monad.o ) [Data.Singletons.Util
changed]
[10 of 45] Compiling Data.Singletons.Single.Monad (
src/Data/Singletons/Single/Monad.hs,
dist/build/Data/Singletons/Single/Monad.o ) [Data.Singletons.Promote.Monad
changed]
[11 of 45] Compiling Data.Singletons.Promote.Eq (
src/Data/Singletons/Promote/Eq.hs, dist/build/Data/Singletons/Promote/Eq.o
) [Data.Singletons.Util changed]
[12 of 45] Compiling Data.Singletons.Promote.Ord (
src/Data/Singletons/Promote/Ord.hs,
dist/build/Data/Singletons/Promote/Ord.o ) [Data.Singletons.Util changed]
[13 of 45] Compiling Data.Singletons.Promote.Bounded (
src/Data/Singletons/Promote/Bounded.hs,
dist/build/Data/Singletons/Promote/Bounded.o ) [Data.Singletons.Util
changed]
[14 of 45] Compiling Data.Singletons.Promote.Type (
src/Data/Singletons/Promote/Type.hs,
dist/build/Data/Singletons/Promote/Type.o ) [Data.Singletons.Util changed]
[15 of 45] Compiling Data.Singletons.Promote.Defun (
src/Data/Singletons/Promote/Defun.hs,
dist/build/Data/Singletons/Promote/Defun.o )
[Data.Singletons.Promote.Monad changed]
[16 of 45] Compiling Data.Singletons.Promote (
src/Data/Singletons/Promote.hs, dist/build/Data/Singletons/Promote.o )
[Data.Singletons.Promote.Defun changed]
[17 of 45] Compiling Data.Promotion.Prelude.Bounded (
src/Data/Promotion/Prelude/Bounded.hs,
dist/build/Data/Promotion/Prelude/Bounded.o )
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package array-0.5.0.0 ... linking ... done.
Loading package deepseq-1.3.0.2 ... linking ... done.
Loading package containers-0.5.5.1 ... linking ... done.
Loading package transformers-0.3.0.0 ... linking ... done.
Loading package mtl-2.1.2 ... linking ... done.
Loading package syb-0.4.1 ... linking ... done.
Loading package pretty-1.1.1.1 ... linking ... done.
Loading package template-haskell ... linking ... done.
Loading package th-desugar-1.4.0 ... linking ... done.
src/Data/Promotion/Prelude/Bounded.hs:34:27:
Not in scope: ‘boundedTypes’
src/Data/Promotion/Prelude/Bounded.hs:34:27:
GHC stage restriction:
‘boundedTypes’ is used in a top-level splice or annotation,
and must be imported, not defined locally
In the first argument of ‘promoteBoundedInstances’, namely
‘boundedTypes’
In the expression: promoteBoundedInstances boundedTypes
[18 of 45] Compiling Data.Singletons.Single.Type (
src/Data/Singletons/Single/Type.hs,
dist/build/Data/Singletons/Single/Type.o ) [Data.Singletons.Single.Monad
changed]
[19 of 45] Compiling Data.Singletons.Single.Eq (
src/Data/Singletons/Single/Eq.hs, dist/build/Data/Singletons/Single/Eq.o )
[Data.Singletons.Util changed]
[20 of 45] Compiling Data.Singletons.Single.Data (
src/Data/Singletons/Single/Data.hs,
dist/build/Data/Singletons/Single/Data.o ) [Data.Singletons.Single.Monad
changed]
[21 of 45] Compiling Data.Singletons.Single (
src/Data/Singletons/Single.hs, dist/build/Data/Singletons/Single.o )
[Data.Singletons.Promote changed]
[22 of 45] Compiling Data.Singletons.Prelude.Instances (
src/Data/Singletons/Prelude/Instances.hs,
dist/build/Data/Singletons/Prelude/Instances.o ) [Data.Singletons.Single
changed]
[23 of 45] Compiling Data.Singletons.Prelude.Bool (
src/Data/Singletons/Prelude/Bool.hs,
dist/build/Data/Singletons/Prelude/Bool.o )
[Data.Singletons.Prelude.Instances changed]
[24 of 45] Compiling Data.Singletons.Prelude.Eq (
src/Data/Singletons/Prelude/Eq.hs, dist/build/Data/Singletons/Prelude/Eq.o
) [Data.Singletons.Prelude.Bool changed]
[25 of 45] Compiling Data.Singletons.CustomStar (
src/Data/Singletons/CustomStar.hs, dist/build/Data/Singletons/CustomStar.o
) [Data.Singletons.Prelude.Bool changed]
[26 of 45] Compiling Data.Promotion.Prelude.Eq (
src/Data/Promotion/Prelude/Eq.hs, dist/build/Data/Promotion/Prelude/Eq.o )
[Data.Singletons.Prelude.Eq changed]
[27 of 45] Compiling Data.Promotion.Prelude.Bool (
src/Data/Promotion/Prelude/Bool.hs,
dist/build/Data/Promotion/Prelude/Bool.o ) [Data.Singletons.Prelude.Bool
changed]
[28 of 45] Compiling Data.Singletons.TypeRepStar (
src/Data/Singletons/TypeRepStar.hs,
dist/build/Data/Singletons/TypeRepStar.o ) [Data.Singletons.Prelude.Eq
changed]
[29 of 45] Compiling Data.Singletons.Prelude.Ord (
src/Data/Singletons/Prelude/Ord.hs,
dist/build/Data/Singletons/Prelude/Ord.o ) [Data.Singletons.Prelude.Bool
changed]
[30 of 45] Compiling Data.Promotion.Prelude.Ord (
src/Data/Promotion/Prelude/Ord.hs, dist/build/Data/Promotion/Prelude/Ord.o
) [Data.Singletons.Prelude.Ord changed]
[31 of 45] Compiling Data.Singletons.TypeLits (
src/Data/Singletons/TypeLits.hs, dist/build/Data/Singletons/TypeLits.o )
[Data.Singletons.Prelude.Bool changed]
[32 of 45] Compiling Data.Singletons.TH ( src/Data/Singletons/TH.hs,
dist/build/Data/Singletons/TH.o ) [Data.Singletons.Prelude.Bool changed]
[33 of 45] Compiling Data.Singletons.Prelude.Base (
src/Data/Singletons/Prelude/Base.hs,
dist/build/Data/Singletons/Prelude/Base.o ) [Data.Singletons.Prelude.Bool
changed]
[34 of 45] Compiling Data.Singletons.Prelude.Either (
src/Data/Singletons/Prelude/Either.hs,
dist/build/Data/Singletons/Prelude/Either.o )
[Data.Singletons.Prelude.Base changed]
[35 of 45] Compiling Data.Promotion.Prelude.Either (
src/Data/Promotion/Prelude/Either.hs,
dist/build/Data/Promotion/Prelude/Either.o )
[Data.Singletons.Prelude.Either changed]
[36 of 45] Compiling Data.Singletons.Prelude.Tuple (
src/Data/Singletons/Prelude/Tuple.hs,
dist/build/Data/Singletons/Prelude/Tuple.o )
[Data.Singletons.Prelude.Instances changed]
[37 of 45] Compiling Data.Promotion.Prelude.Tuple (
src/Data/Promotion/Prelude/Tuple.hs,
dist/build/Data/Promotion/Prelude/Tuple.o ) [Data.Singletons.Prelude.Tuple
changed]
[38 of 45] Compiling Data.Promotion.Prelude.Base (
src/Data/Promotion/Prelude/Base.hs,
dist/build/Data/Promotion/Prelude/Base.o ) [Data.Singletons.Prelude.Base
changed]
[39 of 45] Compiling Data.Singletons.Prelude.List (
src/Data/Singletons/Prelude/List.hs,
dist/build/Data/Singletons/Prelude/List.o ) [Data.Singletons.Prelude.Base
changed]
[40 of 45] Compiling Data.Singletons.Prelude.Maybe (
src/Data/Singletons/Prelude/Maybe.hs,
dist/build/Data/Singletons/Prelude/Maybe.o
)[Data.Singletons.Prelude.Instances changed]
[41 of 45] Compiling Data.Singletons.Prelude (
src/Data/Singletons/Prelude.hs, dist/build/Data/Singletons/Prelude.o )
[Data.Singletons.Prelude.Base changed]
[42 of 45] Compiling Data.Promotion.Prelude.List (
src/Data/Promotion/Prelude/List.hs,
dist/build/Data/Promotion/Prelude/List.o ) [Data.Promotion.Prelude.Ord
changed]
[43 of 45] Compiling Data.Promotion.Prelude.Maybe (
src/Data/Promotion/Prelude/Maybe.hs,
dist/build/Data/Promotion/Prelude/Maybe.o ) [Data.Singletons.Prelude.Maybe
changed]
[45 of 45] Compiling Data.Promotion.TH ( src/Data/Promotion/TH.hs,
dist/build/Data/Promotion/TH.o ) [Data.Singletons.Prelude.Bool changed]
}}}
Notice how file 18 of 45 fails to build and yet the build does not stop.
It seems that while one thread fails the remaining ones pick up other
files that can be compiled despite the failure. I'm not really sure if I'm
against this design choice, but I'd certainly expect to get information
that something went wrong during the build. Here I was confused when I
realised that despite seemingly successful compilation my package was not
built. Only after examining the build log I saw that one of the modules
failed to build. This should be changed to clearly notify the user that
compilation was not successful.
PS. At first I thought this is cabal-install's fault, but
[https://github.com/haskell/cabal/issues/1809 this was ruled out].
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9219>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list