(I apologize for the trite subject line, but I feel it conveys the
point.)

For the past two weeks or so I have been unable to build the latest
GHC HEAD from the main darcs development branch (I believe the last
one I managed to build here on OS X 10.5 was 20080720.) From the looks
of it this is due to the flux of changes hitting the build system
along with many many other things going on I'm sure (and your work
will never go unappreciated as far as I'm concerned.)

However, over this time, these rapid build changes among other things
have succeeded in not only causing some headaches but in many cases
simply locking out many developers or potential developers - myself
included.

I find compiler technology very interesting; unsurprisingly I also
find Haskell very interesting. GHC is widely enough used and there is
enough documentation to the point I figure a low-level hacker like
myself could find some place to help contribute (janitorial tasks are
fine by my standards!) I feel it is fair: the haskell experience has
changed my brain and to repay the community for the terrific support
and technology they have given me I might as well invest some of my
time in giving back to them, even if it only means a cosmetic change
or something totally trivial. I think it would be a good way to spend
my time, and I get the benefit of seeing my changes do good. Everyone
wins, that's the point, right? So for the past day or so I've been
trolling trac, looking at things that might be worth investigating
and that I think I could help with.

It's an exciting time too, I am eagerly awaiting GHC 6.10. New
exceptions library, new GC, type families, a new code generator,
sprinkle a little DPH in there and it's an awesome-possum-party. No
reason not to love it.


However, I must express my concern that these rapid changes currently
do not seem to be helping me or more noticable hackers in making
headway. It is proactively hurting and frusterating many people when
they cannot build the new HEAD. As ChilliX told me: the HEAD is not
supposed to be bestable, but it is supposed to be buildable.

Essentially everything is coming down to the build system it looks
like. The basic idea is to go from autoconf -> Cabal as I see it.
What is this new system buying us? Because currently, it seems to have
cost us:

1. Parallel builds (i.e. make -j, brought up by ChilliX)
2. A working build system (and by association a buildable HEAD)

Why the switch to a cabal infrastructure? To stress test it? To make
building simpler (i.e. win32)? To prove a point? What's the end result
and what do we hope to gain? The old build system wasn't broke; why
fix it?

I'm not sure, and that's the problem. This has been brought to your
attention I am sure, but if it impedes the development of GHC in such
a way that people like myself or those who already actively contribute
can't, it should be flagged as a *major* consideration and needs to be
discussed with the community or at least the active GHC developers in
full.

(From the frusteration Mr. Chakravarty has expressed, it seems as
if it magic'd itself in there: non-existant one minute, full blown the next.)

With these changes other things also seem to be falling down as well; with
the most recent checkout of GHC, it does not even fail with the err I
had a few days ago about the 'inferred architecture size ... i386', it
fails with this:



> Preprocessing executables for ghc-pkg-6.9...
> Building ghc-pkg-6.9...
> [1 of 1] Compiling Main             ( HaskTags.hs, 
> dist-install/build/hasktags/hasktags-tmp/Main.o )
> [1 of 1] Compiling Main             ( runghc.hs, 
> dist-install/build/runghc/runghc-tmp/Main.o )
> [1 of 1] Compiling Main             ( installPackage.hs, 
> dist-install/build/installPackage/installPackage-tmp/Main.o )
> [1 of 2] Compiling Version          ( Version.hs, 
> dist-install/build/ghc-pkg/ghc-pkg-tmp/Version.o )
> [2 of 2] Compiling Main             ( Main.hs, 
> dist-install/build/ghc-pkg/ghc-pkg-tmp/Main.o )
> Main.hs:1143:14: Not in scope: `Exception.onException'



Which ChilliX pointed out should have been caught by the validate
script; so how did this patch get through? It is completely
unpredictable at this point in time where things are going to break,
how and for what reason. Pretty flaky, to be honest.

The question in full is: what in the hell is really going on right
now? Is it simply project-management practices or true technical
issues that must be dealt with using hard, cold debugging and a good
injection of code? I'm wagering it's somewhere inbetween the two from
the view I'm getting from my binoculars.

What *is* going on, and more importantly, -how can we help improve the
situation-?  Right now, I've no idea where to start and without help
from you guys, I doubt anybody else can, considering you guys are
-it-. So please, speak. What is going on? How can the would-be's like
myself get involved and help? What is the state of the breakage, and
more importantly it's reason?


With these current changes, I can't contribute to GHC, can't verify
bugs exist or stress test the compiler. I can't strive to make the
software I really like better. I can only hope things will get better
on the horizon but it is simply frusterating to be put out in the cold
with little to no information as to what's happening.


I apologize if this mail seems overly critical of the work you guys
are currently doing and I realize with the whole VCS-switch many
people's minds could be elsewhere. There is a lot of stuff going into
this new release, so lots of stuff will have to be tested, integrated
and polished. It is a big time in GHC land and even I can tell that
much.

But this is something that needs to be brought up I think and I can
speak personally - and for others, likely - when I say that an
unfriendly HEAD is unfriendly, especially to would-be contributors
like myself.

Austin

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to