[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