On 17/06/2011, at 12:03 AM, Simon Peyton-Jones wrote:

> Manuel
>  
> I got this when validating.
>  
> I said “sh validate --no-clean”; some more compiling happened, then the same 
> result.
>  
> I said “sh validate --no-clean” again, and this time it went through.
>  
> Is this the same missing-dependency thing?  Did you validate?
> 
> Simon
>  
> GHC error in desugarer lookup in dph-par:Data.Array.Parallel.Prelude.Bool:
>   attempting to use module `dph-par:Data.Array.Parallel.Prelude.Base.Tuple' 
> (libraries/dph/dph-par/../dph-common/Data/Array/Parallel/Prelude/Base/Tuple.hs)
>  which is not loaded
> haddock: panic! (the 'impossible' happened)
>   (GHC version 7.1.20110204 for x86_64-unknown-linux):
>                 initDs IOEnv failure


I think this is another symptom of the build race and/or a separate race 
exposed by the recent changes.

It appears to happen when:

 1) Haddock tries to process dph-common:Data.Array.Parallel.Prelude.Bool
 2) That module contains {-# OPTIONS_GHC -fvectorise #-}, so it runs the 
vectoriser.
 3) The vectoriser produces code that uses tup2 from 
dph-common:D.A.P.Prelude.Base.Tuple,
    but aren't any direct imports of that module from 
dph-common:D.A.P.Prelude.Bool.
 4) The type checker tries to demand-load D.A.P.Prelude.Base.Tuple, but as that 
module
    is also in dph-common, LoadIface.findAndReadIface thinks it should have 
already
    been loaded so emits the error.

If that reasoning was correct, then I don't know why it wouldn't _always_ die. 
However, I'm testing a patch that makes the vectoriser always manually load 
D.A.P.Prelude.Base.Tuple, so we'll see if that helps.

Sadly, validate won't always catch build races. :-(

Ben.


_______________________________________________
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to