Spoiler: I'm not talking about Haskell but about ghc here.
I'd like to remove lang/ghc from the ports tree, because it's fucked
up beyond repair:
- configure runs ghc-pwd (instead of just pwd) to determine the current
working directory. ghc-pwd is a program written in Haskell. In the
past, when ghc-pwd appeared, configure first compiled that ghc-pwd
program, which wouldn't work unless you already have a working
Haskell compiler installed.
- after replacing all occurrences of ghc-pwd by /bin/pwd, the build
fails because it runs ghc-stage2 from the bootstrapper. (Note
that binaries for ghc-pwd as well as ghc-stage2 and much more are
included in the ghc sources and/or the bootstrapper for this
purpose).
- bootstrapping without a pre-installed ghc still doesn't work, and
upstream doesn't careA
- the ghc compiler is not deterministic, because function names (in
hs-libraries) depend on what's already built. So if you start a
build of ghc, interrupt it and restart it, you may end up with binary
incompatible libraries to an uninterrupted build. This is also the
reason for all those package bumps we do on hs-* ports.
- with every new major ghc release, interfaces break. For example, last
summer I had to fix various "Num doesn't imply EQ" issues as
well as a lot of general typesystem issues. Imagine annual changes
to the C programming language that require not only recompiliton
but rewrites!
So let's get rid of this crap.
Ciao,
Kili