Support for abi-depends for computing shadowing.
authorEdward Z. Yang <ezyang@cs.stanford.edu>
Wed, 14 Dec 2016 09:28:43 +0000 (01:28 -0800)
committerEdward Z. Yang <ezyang@cs.stanford.edu>
Wed, 21 Dec 2016 16:49:06 +0000 (08:49 -0800)
commitee4e1654c31b9c6f6ad9b19ece25f040bbbcbd72
tree8f58c21ea66a817e384fceb01e930df00cb7e7a9
parent2189239872322dc363cc5f82e14ab5fb1a6d5b8c
Support for abi-depends for computing shadowing.

Summary:
This is a complete fix based off of
ed7af26606b3a605a4511065ca1a43b1c0f3b51d for handling
shadowing and out-of-order -package-db flags simultaneously.

The general strategy is we first put all databases together,
overriding packages as necessary.  Once this is done, we successfully
prune out broken packages, including packages which depend on a package
whose ABI differs from the ABI we need.

Our check gracefully degrades in the absence of abi-depends, as
we only check deps which are recorded in abi-depends.

Contains time and Cabal submodule update.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Test Plan: validate

Reviewers: niteria, austin, bgamari

Subscribers: thomie

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

GHC Trac Issues: #12485
21 files changed:
compiler/backpack/DriverBkp.hs
compiler/ghc.cabal.in
compiler/main/Packages.hs
ghc/ghc-bin.cabal.in
libraries/Cabal
libraries/ghc-boot/GHC/PackageDb.hs
libraries/hpc
libraries/time
testsuite/driver/extra_files.py
testsuite/tests/cabal/Makefile
testsuite/tests/cabal/T12485/Makefile
testsuite/tests/cabal/T12485/all.T
testsuite/tests/cabal/T12485a.stdout [new file with mode: 0644]
testsuite/tests/cabal/T1750.stderr
testsuite/tests/cabal/all.T
testsuite/tests/cabal/shadow1.pkg
testsuite/tests/cabal/shadow2.pkg
testsuite/tests/cabal/shadow3.pkg
testsuite/tests/perf/haddock/all.T
utils/ghc-cabal/Main.hs
utils/ghc-pkg/Main.hs