Remove fancy shadowing logic; always override in package database order.
This is a stopgap fix for GHC 8.0 bug #12485: in particular, it relaxes need for -package-db flags to be given in dependency order. The trade-off is that we are a lot more unsafe when there are packages with duplicate 'id's in the database stack: the new code will not do an ABI compatibility check: if two packages have the same 'id', they are assumed to be ABI compatible. If this is not true, GHC may build segfaulting executables. Missing test updates, but I'm putting it up so people can take a look. In GHC 8.2, we'll record ABIs for all dependencies, allowing GHC to make better decisions about shadowing. Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: validate Reviewers: austin, niteria, bgamari, simonmar Reviewed By: simonmar Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2613 GHC Trac Issues: #12485
Showing
- compiler/main/Packages.hs 49 additions, 72 deletionscompiler/main/Packages.hs
- docs/users_guide/packages.rst 4 additions, 4 deletionsdocs/users_guide/packages.rst
- testsuite/tests/cabal/Makefile 9 additions, 13 deletionstestsuite/tests/cabal/Makefile
- testsuite/tests/cabal/cabal08/all.T 3 additions, 1 deletiontestsuite/tests/cabal/cabal08/all.T
- testsuite/tests/cabal/shadow.stderr 0 additions, 4 deletionstestsuite/tests/cabal/shadow.stderr
- testsuite/tests/cabal/shadow.stdout 2 additions, 2 deletionstestsuite/tests/cabal/shadow.stdout
Loading
Please register or sign in to comment