Enable building Cabal with parsec
authorHerbert Valerio Riedel <hvr@gnu.org>
Tue, 1 Aug 2017 15:05:18 +0000 (11:05 -0400)
committerBen Gamari <ben@smart-cactus.org>
Tue, 1 Aug 2017 20:04:54 +0000 (16:04 -0400)
commit36fe21aa3fe5abe1cef0104b20c296ac9385658d
treefccb49998e3e4c961e1f2c9e4d3000ae394bfd60
parentc13720c8c6047844f659ad4ce684946b80c99bee
Enable building Cabal with parsec

Cabal's parser has been rewritten in terms of Parsec (which is not
enabled yet in Cabal-2.0 by default, but can be enabled by a cabal
flag). The plan for Cabal is to drop support for the non-parsec parser,
so we need to prepare GHC to cope with new situation.

However, this means that lib:Cabal requires three new library
dependency submodules,

 - parsec
 - text
 - mtl

What complicates matters is that we need to build `ghc-cabal` early on
during the bootstrap phase which currently needs to invoke `ghc --make`
directly. So these additional dependencies need to be integrated into
the monolithic `ghc --make` invocation which produces the `ghc-cabal`
executable.

Test Plan: `./validate --fast` passed

Reviewers: austin, bgamari

Subscribers: erikd, phadej, rwbarton, thomie

Differential Revision: https://phabricator.haskell.org/D3757
configure.ac
ghc.mk
libraries/mtl [new submodule]
libraries/parsec [new submodule]
libraries/text [new submodule]
mk/warnings.mk
packages
rules/sdist-ghc-file.mk
utils/ghc-cabal/ghc.mk