Update Cabal submodule & ghc-pkg to use new module re-export types
authorEdward Z. Yang <ezyang@cs.stanford.edu>
Tue, 23 Sep 2014 14:05:25 +0000 (16:05 +0200)
committerHerbert Valerio Riedel <hvr@gnu.org>
Wed, 24 Sep 2014 21:18:28 +0000 (23:18 +0200)
commit4b648be19c75e6c6a8e6f9f93fa12c7a4176f0ae
tree9ac36c659e391d72825ce896a3424a22823b7703
parent165072b334ebb2ccbef38a963ac4d126f1e08c96
Update Cabal submodule & ghc-pkg to use new module re-export types

Summary:
The main change is that Cabal changed the representation of module
re-exports to distinguish reexports in source .cabal files versus
re-exports in installed package registraion files.

Cabal now also does the resolution of re-exports to specific installed
packages itself, so ghc-pkg no longer has to do this. This is a cleaner
design overall because re-export resolution can fail so it is better to
do it during package configuration rather than package registration.
It also simplifies the re-export representation that ghc-pkg has to use.

Add extra ghc-pkg sanity check for module re-exports and duplicates

For re-exports, check that the defining package exists and that it
exposes the defining module (or for self-rexport exposed or hidden
modules). Also check that the defining package is actually a direct
or indirect dependency of the package doing the re-exporting.

Also add a check for duplicate modules in a package, including
re-exported modules.

Test Plan:
So far the sanity checks are totally untested. Should add some test
case to make sure the sanity checks do catch things correctly, and
don't ban legal things.

Reviewers: austin, duncan

Subscribers: angerman, simonmar, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D183

GHC Trac Issues:
compiler/main/Packages.lhs
ghc.mk
libraries/Cabal
testsuite/tests/cabal/ghcpkg07.stdout
testsuite/tests/cabal/test7a.pkg
testsuite/tests/cabal/test7b.pkg
testsuite/tests/perf/haddock/all.T
utils/ghc-cabal/Main.hs
utils/ghc-cabal/ghc.mk
utils/ghc-pkg/Main.hs