logo       

RE: ghc 6.2 gets confused about Main.hi reuse: msg#00010

lang.haskell.glasgow.bugs

Subject: RE: ghc 6.2 gets confused about Main.hi reuse

Reviving an old thread:

> When trying to build HaRe with ghc 6.2 (builds fine with ghc 6.0.1),
> we encountered a long list of strange error messages of the kind:
>
> ...
>
> *** Compiling Main:
> compile: input file pfe_client.hs
> *** Checking old interface for Main:
>
> Failed to load interface for `MapDeclMBase':
> Could not find interface file for `MapDeclMBase'
> locations searched:
> /proj/haskell/lib/ghc-6.2/imports/MapDeclMBase.hi
> /proj/haskell/lib/ghc-6.2/hslibs-imports/text/MapDeclMBase.hi
> /proj/haskell/lib/ghc-6.2/hslibs-imports/data/MapDeclMBase.hi
> /proj/haskell/lib/ghc-6.2/hslibs-imports/util/MapDeclMBase.hi
> /proj/haskell/lib/ghc-6.2/hslibs-imports/posix/MapDeclMBase.hi
>
> /proj/haskell/lib/ghc-6.2/hslibs-imports/concurrent/MapDeclMBase.hi
> /proj/haskell/lib/ghc-6.2/hslibs-imports/lang/MapDeclMBase.hi
>
> ...

We've found the reason that 6.2 was failing in this way and fixed it in
6.2.1. It was indeed a bug.

*However*, this doesn't change the fact that swapping in a new Main
module is a dangerous thing to do: the recompilation system relies on
the date of the source file to determine whether compilation is
required, so if you use a new Main module without touching it first, the
compiler might not recompile as it should.

There are ways we might try to get around this problem. Putting an md5
signature of the source file in the .hi file is one way. Using
different .hi files for different source files is another, but we
couldn't see a good way to do this when using the -hidir flag as in your
example.

Cheers,
Simon


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise