[commit: ghc] master: Package keys (for linking/type equality) separated from package IDs. (66218d1)
git at git.haskell.org
git at git.haskell.org
Tue Aug 5 10:15:33 UTC 2014
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/66218d15b7c27a4a38992003bd761f60bae84b1f/ghc
>---------------------------------------------------------------
commit 66218d15b7c27a4a38992003bd761f60bae84b1f
Author: Edward Z. Yang <ezyang at cs.stanford.edu>
Date: Fri Jul 18 14:48:47 2014 +0100
Package keys (for linking/type equality) separated from package IDs.
This patch set makes us no longer assume that a package key is a human
readable string, leaving Cabal free to "do whatever it wants" to allocate
keys; we'll look up the PackageId in the database to display to the user.
This also means we have a new level of qualifier decisions to make at the
package level, and rewriting some Safe Haskell error reporting code to DTRT.
Additionally, we adjust the build system to use a new ghc-cabal output
Make variable PACKAGE_KEY to determine library names and other things,
rather than concatenating PACKAGE/VERSION as before.
Adds a new `-this-package-key` flag to subsume the old, erroneously named
`-package-name` flag, and `-package-key` to select packages by package key.
RFC: The md5 hashes are pretty tough on the eye, as far as the file
system is concerned :(
ToDo: safePkg01 test had its output updated, but the fix is not really right:
the rest of the dependencies are truncated due to the fact the we're only
grepping a single line, but ghc-pkg is wrapping its output.
ToDo: In a later commit, update all submodules to stop using -package-name
and use -this-package-key. For now, we don't do it to avoid submodule
explosion.
Signed-off-by: Edward Z. Yang <ezyang at cs.stanford.edu>
Test Plan: validate
Reviewers: simonpj, simonmar, hvr, austin
Subscribers: simonmar, relrod, carter
Differential Revision: https://phabricator.haskell.org/D80
>---------------------------------------------------------------
66218d15b7c27a4a38992003bd761f60bae84b1f
compiler/basicTypes/Module.lhs | 26 +++++++-
compiler/ghc.cabal.in | 4 +-
compiler/ghc.mk | 6 ++
compiler/ghci/Linker.lhs | 2 +-
compiler/iface/LoadIface.lhs | 2 +
compiler/llvmGen/LlvmCodeGen/Base.hs | 2 +-
compiler/main/DynFlags.hs | 18 ++++--
compiler/main/Finder.lhs | 2 +-
compiler/main/HscMain.hs | 13 +++-
compiler/main/HscTypes.lhs | 55 +++++++++++++++--
compiler/main/PackageConfig.hs | 19 +++---
compiler/main/Packages.lhs | 59 ++++++++++++------
compiler/main/Packages.lhs-boot | 4 ++
compiler/utils/Outputable.lhs | 61 +++++++++++++++----
docs/users_guide/flags.xml | 2 +-
docs/users_guide/packages.xml | 18 +++---
ghc.mk | 6 +-
ghc/InteractiveUI.hs | 5 +-
libraries/Cabal | 2 +-
libraries/base/base.cabal | 4 +-
.../Distribution/InstalledPackageInfo/Binary.hs | 11 ++++
libraries/ghc-prim/ghc-prim.cabal | 4 +-
libraries/integer-gmp/integer-gmp.cabal | 4 +-
libraries/integer-simple/integer-simple.cabal | 2 +-
libraries/template-haskell/template-haskell.cabal | 4 +-
rts/ghc.mk | 6 +-
rts/package.conf.in | 3 +-
rules/build-package-way.mk | 14 +++--
rules/build-prog.mk | 2 +-
rules/distdir-way-opts.mk | 20 +++++--
testsuite/.gitignore | 2 +
testsuite/tests/cabal/T1750A.pkg | 1 +
testsuite/tests/cabal/T1750B.pkg | 1 +
testsuite/tests/cabal/cabal06/Makefile | 70 ++++++++++++++++++++++
.../tests/cabal/{cabal05 => cabal06}/Setup.hs | 0
testsuite/tests/cabal/{cabal03 => cabal06}/all.T | 6 +-
.../tests/cabal/cabal06/cabal06.stderr | 0
testsuite/tests/cabal/cabal06/cabal06.stdout | 8 +++
.../cabal/{cabal05/p => cabal06/p-1.0}/LICENSE | 0
testsuite/tests/cabal/cabal06/p-1.0/P.hs | 3 +
.../cabal/{cabal05/p => cabal06/p-1.0}/p.cabal | 7 ++-
.../cabal/{cabal05/p => cabal06/p-1.1}/LICENSE | 0
testsuite/tests/cabal/cabal06/p-1.1/P.hs | 3 +
.../cabal/{cabal05/p => cabal06/p-1.1}/p.cabal | 7 ++-
.../tests/cabal/{cabal05/p => cabal06/q}/LICENSE | 0
testsuite/tests/cabal/{cabal05 => cabal06}/q/Q.hs | 4 +-
testsuite/tests/cabal/cabal06/q/q-1.0.conf | 19 ++++++
testsuite/tests/cabal/cabal06/q/q.cabal | 12 ++++
.../tests/cabal/{cabal05/p => cabal06/r}/LICENSE | 0
testsuite/tests/cabal/cabal06/r/Main.hs | 3 +
testsuite/tests/cabal/cabal06/r/r.cabal | 12 ++++
testsuite/tests/cabal/ghcpkg01.stdout | 6 ++
testsuite/tests/cabal/shadow1.pkg | 1 +
testsuite/tests/cabal/shadow2.pkg | 1 +
testsuite/tests/cabal/shadow3.pkg | 1 +
testsuite/tests/cabal/test.pkg | 1 +
testsuite/tests/cabal/test2.pkg | 1 +
testsuite/tests/cabal/test3.pkg | 1 +
testsuite/tests/cabal/test4.pkg | 1 +
testsuite/tests/cabal/test5.pkg | 1 +
testsuite/tests/cabal/test7a.pkg | 1 +
testsuite/tests/cabal/test7b.pkg | 1 +
testsuite/tests/cabal/testdup.pkg | 1 +
testsuite/tests/ghc-api/T7478/T7478.hs | 4 +-
testsuite/tests/ghci/linking/Makefile | 3 +
testsuite/tests/module/base01/Makefile | 4 +-
testsuite/tests/module/mod73.stderr | 4 +-
testsuite/tests/rename/prog006/Makefile | 3 +-
testsuite/tests/rename/should_compile/T3103/test.T | 2 +-
.../safeHaskell/check/pkg01/ImpSafeOnly07.stderr | 2 +-
.../safeHaskell/check/pkg01/ImpSafeOnly08.stderr | 2 +-
.../tests/safeHaskell/check/pkg01/safePkg01.stdout | 6 +-
utils/ghc-cabal/Main.hs | 21 ++++++-
utils/ghc-pkg/Main.hs | 48 +++++++++++----
74 files changed, 512 insertions(+), 142 deletions(-)
Diff suppressed because of size. To see it, use:
git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc 66218d15b7c27a4a38992003bd761f60bae84b1f
More information about the ghc-commits
mailing list