Recompiling the darcs tree after a pull

Simon Marlow simonmarhaskell at
Wed Jul 19 07:46:40 EDT 2006

Joel Reymont wrote:
> I get a lot of errors like this:
> utils/Panic.lhs:27:0:
>     Failed to load interface for `Config':
>         Bad interface file: stage1/main/Config.hi
>             mismatched interface file versions: expected 6050, found  
> 390518464
> Do you guys always clean after a pull or is there an easy way to get  a 
> list of *.hi (and *.o) files to delete?

The party line is that after a 'darcs pull' you should start again from scratch. 
  That is,

   - make maintainer-clean
   - autoreconf
   - configure
   - make

If you Know What You Are Doing you might be able to avoid being this drastic, or 
you can just chance it and try cleaning if things go wrong.

The main reason for this is that the build system doesn't express all the 
dependencies in the tree; for example, it doesn't know that every .hi file in 
the libraries implicitly depends on every .hs file in the compiler, because the 
interface file format is dependent on the compiler.  Getting all these 
dependencies just right would be likely to lead to a lot of unnecessary 
recompilation while we're developing, so it's a compromise.  If you know that 
the interface file format has changed, you have to make clean in libraries, the 
build system won't do it for you.


More information about the Glasgow-haskell-users mailing list