[commit: ghc] master: By default, be lax about dependencies on GHC (12646a9)

Simon Marlow marlowsd at gmail.com
Tue Aug 30 12:12:38 CEST 2011


On 28/08/2011 15:32, Ian Lynagh wrote:
> On Sun, Aug 28, 2011 at 03:09:37PM +0100, Simon Marlow wrote:
>>
>> I'm really not sure it's a good idea for this to be the default.  It
>> will be much less likely that a "./configure; make"
>
> Why do you "./configure" when doing that? Especially if not "boot"ing.

Well, it's all just a tradeoff.  Strictly speaking you should:

   $ ./sync-all pull
   $ ./sync-all get
   $ ./boot
   $ ./configure
   $ make

and sometimes even that doesn't work.  In fact, I think the act of 
running ./configure causes the build to fail because the version number 
of GHC changes, and we don't rebuild enough - that's really a bug in the 
build system that I need to look into though.  The most common cause of 
failure is the change in version number of a package, leading to an 
error from GHC about mismatched interface file versions; this really 
shouldn't happen, the build system should cope.

> If you don't reconfigure (and thus don't change the hi version number)
> then I don't think this change will make things less likely to build,
> but perhaps I am wrong.

It's hard to say.  For example, adding a primop requires that we respect 
the GHC dependency, as does changing the hi file format, so there are 
certainly cases where we want the dependency to be respected.  There are 
also cases whether the dependency isn't enough, and you have to clean, 
and cases whether the dependency is overkill.

> Anyway, if you disagree then I'm happy to have it off by default.

I'd like to propose that we leave it off by default, but add 
instructions on how to turn it on to the wiki, and put it in 
mk/build.mk.sample where developers will find it.

Cheers,
	Simon



More information about the Cvs-ghc mailing list