Manuel M T Chakravarty wrote:
In the last couple of weeks I spent a lot of time just trying to compile
GHC. With the constantly changing build system, incremental builds fail
more often than not after new patches are pulled. And sometimes even
clean builds don't work. For example, today (that is Monday morning in
.au) I could neither build the ghc-ndp branch nor the head pulling the
ghc sources and packages straight of darcs.
I am maybe in an especially bad situation by working on the head and a
branch (ghc-ndp), but we sync the branch fairly often (although that's
been discouraged by the constant build problems). I am also building on
MacOS, which once in a while presents its on kinks (eg, readline
breaking with the change to the Cabal build system until Roman fixed it).
Nevertheless, I don't think I am alone. For example, not long ago I met
Andy Gill in #ghc trying to find a version of the head that's fairly
recent and still builds.
So, let me make a suggestion. Could the changes to the build system
maybe done on a branch of the repos and be integrated into the live tree
in larger intervals? Then, we'd have the pain in bursts, but less
often. I appreciate that this is not entirely trivial as you have to
branch the packages along with the ghc repo, but the current situation
is extremely frustrating.
I feel your frustration, stability of the HEAD does seem to have been a problem
of late. Looking through the logs though, there was only one day in the last
two weeks in which there was no successful build at all. So, problems arise and
are generally fixed quickly. We're still improving our nightly build
infrastructure, so I expect this situation to improve in the future - e.g. we
don't currently get notifications as soon as one of the builds fails, but Ian
plans to add this to the IRC bot, which should mean we're able to respond more
quickly.
We should try to use the "FIX BUILD" convention more consistently. Hopefully
that would allow people to get from a broken build to a working one more quickly
and reliably.
I'm not sure that working on a branch would help here. In a sense the build
system work *is* being done in a branch - a private branch, and making the
branch public wouldn't really help, because nobody else would be testing it. I
suspect we'd have a similar batch of failures when the code was merged into the
HEAD and tested in a wider variety of configurations than Ian can reasonably
test on his own. Add to that the extra overhead of developing on a branch (with
multiple repos) and I'd say this isn't the way forward.
Incremental builds after pulling patches can fail for many reasons, which is why
we recommend doing a distclean and building from scratch after pulling. There
are simply too many dependencies for the build system to track them all - for
example, we can't tell when the interface format changes and the libraries need
to be rebuilt.
We definitely need more nightly builds, in particular we don't have a current
MacOS X nightly build - why is that? There are several registered, but they all
seem to be offline.
Cheers,
Simon
_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc