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

Reply via email to