Skip to content
  • Edward Z. Yang's avatar
    Fix #13703 by correctly using munged names in ghc-pkg. · d9e9a9b3
    Edward Z. Yang authored
    
    
    Summary:
    Cabal internal libraries are implemented using a trick, where the 'name'
    field in ghc-pkg registration file is munged into a new form to keep
    each internal library looking like a distinct package to ghc-pkg and
    other tools; e.g. the internal library q from package p is named
    z-p-z-q.
    
    Later, Cabal library got refactored so that we made a closer distinction
    between these "munged" package names and the true package name of a
    package.  Unfortunately, this is an example of a refactor for clarity in
    the source code which ends up causing problems downstream, because the
    point of "munging" the package name was to make it so that ghc-pkg and
    similar tools transparently used MungedPackageName whereever they
    previously used PackageName (in preparation for them learning proper
    syntax for package name + component name).  Failing to do this meant
    that internal libraries from the same package (but with different
    names) clobber each other.
    
    This commit search-replaces most occurrences of PackageName in
    ghc-pkg and turns them into MungedPackageName. Otherwise there
    shouldn't be any functional differenes.
    
    Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
    
    Test Plan: validate
    
    Reviewers: bgamari, austin
    
    Subscribers: rwbarton, thomie
    
    GHC Trac Issues: #13703
    
    Differential Revision: https://phabricator.haskell.org/D3590
    d9e9a9b3