• Edward Z. Yang's avatar
    Package keys (for linking/type equality) separated from package IDs. · 66218d15
    Edward Z. Yang authored
    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: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
    
    Test Plan: validate
    
    Reviewers: simonpj, simonmar, hvr, austin
    
    Subscribers: simonmar, relrod, carter
    
    Differential Revision: https://phabricator.haskell.org/D80
    66218d15
Outputable.lhs 36.6 KB