Skip to content
  • Edward Z. Yang's avatar
    Update Cabal submodule & ghc-pkg to use new module re-export types · 4b648be1
    Edward Z. Yang authored and Herbert Valerio Riedel's avatar Herbert Valerio Riedel committed
    Summary:
    The main change is that Cabal changed the representation of module
    re-exports to distinguish reexports in source .cabal files versus
    re-exports in installed package registraion files.
    
    Cabal now also does the resolution of re-exports to specific installed
    packages itself, so ghc-pkg no longer has to do this. This is a cleaner
    design overall because re-export resolution can fail so it is better to
    do it during package configuration rather than package registration.
    It also simplifies the re-export representation that ghc-pkg has to use.
    
    Add extra ghc-pkg sanity check for module re-exports and duplicates
    
    For re-exports, check that the defining package exists and that it
    exposes the defining module (or for self-rexport exposed or hidden
    modules). Also check that the defining package is actually a direct
    or indirect dependency of the package doing the re-exporting.
    
    Also add a check for duplicate modules in a package, including
    re-exported modules.
    
    Test Plan:
    So far the sanity checks are totally untested. Should add some test
    case to make sure the sanity checks do catch things correctly, and
    don't ban legal things.
    
    Reviewers: austin, duncan
    
    Subscribers: angerman, simonmar, ezyang, carter
    
    Differential Revision: https://phabricator.haskell.org/D183
    
    GHC Trac Issues:
    4b648be1