[commit: ghc] master: Module reexports, fixing #8407. (7f5c1086)

git at git.haskell.org git at git.haskell.org
Sat Jul 26 01:08:06 UTC 2014


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/7f5c10864e7c26b90c7ff4ed09d00c8a09aa4349/ghc

>---------------------------------------------------------------

commit 7f5c10864e7c26b90c7ff4ed09d00c8a09aa4349
Author: Edward Z. Yang <ezyang at cs.stanford.edu>
Date:   Fri Jul 4 17:01:08 2014 +0100

    Module reexports, fixing #8407.
    
    The general approach is to add a new field to the package database,
    reexported-modules, which considered by the module finder as possible
    module declarations.  Unlike declaring stub module files, multiple
    reexports of the same physical package at the same name do not
    result in an ambiguous import.
    
    Has submodule updates for Cabal and haddock.
    
    NB: When a reexport renames a module, that renaming is *not* accessible
    from inside the package.  This is not so much a deliberate design choice
    as for implementation expediency (reexport resolution happens only when
    a package is in the package database.)
    
    TODO: Error handling when there are duplicate reexports/etc is not very
    well tested.
    
    Signed-off-by: Edward Z. Yang <ezyang at cs.stanford.edu>
    
    Conflicts:
    	compiler/main/HscTypes.lhs
    	testsuite/.gitignore
    	utils/haddock


>---------------------------------------------------------------

7f5c10864e7c26b90c7ff4ed09d00c8a09aa4349
 compiler/main/DynFlags.hs                          |   1 +
 compiler/main/Finder.lhs                           |  25 +++--
 compiler/main/GHC.hs                               |  12 ++-
 compiler/main/HscTypes.lhs                         |   6 +-
 compiler/main/PackageConfig.hs                     |   4 +
 compiler/main/Packages.lhs                         | 109 ++++++++++++++++-----
 ghc/InteractiveUI.hs                               |   8 +-
 libraries/Cabal                                    |   2 +-
 .../Distribution/InstalledPackageInfo/Binary.hs    |   8 ++
 testsuite/.gitignore                               |   8 ++
 testsuite/tests/cabal/Makefile                     |  15 +++
 testsuite/tests/cabal/all.T                        |   6 ++
 testsuite/tests/cabal/cabal05/Makefile             |  69 +++++++++++++
 .../{driver/T3007/A => cabal/cabal05}/Setup.hs     |   0
 testsuite/tests/cabal/{cabal03 => cabal05}/all.T   |   4 +-
 .../tests/cabal/cabal05/p/LICENSE                  |   0
 testsuite/tests/cabal/cabal05/p/P.hs               |   3 +
 testsuite/tests/cabal/cabal05/p/P2.hs              |   1 +
 .../{driver/T3007/A => cabal/cabal05/p}/Setup.hs   |   0
 testsuite/tests/cabal/cabal05/p/p.cabal            |  11 +++
 .../tests/cabal/cabal05/q/LICENSE                  |   0
 testsuite/tests/cabal/cabal05/q/Q.hs               |   4 +
 .../{driver/T3007/A => cabal/cabal05/q}/Setup.hs   |   0
 testsuite/tests/cabal/cabal05/q/q.cabal            |  29 ++++++
 .../tests/cabal/cabal05/r/LICENSE                  |   0
 testsuite/tests/cabal/cabal05/r/R.hs               |  11 +++
 .../{driver/T3007/A => cabal/cabal05/r}/Setup.hs   |   0
 testsuite/tests/cabal/cabal05/r/r.cabal            |  32 ++++++
 .../tests/cabal/cabal05/s/LICENSE                  |   0
 testsuite/tests/cabal/cabal05/s/S.hs               |  18 ++++
 .../{driver/T3007/A => cabal/cabal05/s}/Setup.hs   |   0
 testsuite/tests/cabal/cabal05/s/s.cabal            |  11 +++
 testsuite/tests/cabal/ghcpkg07.stdout              |  11 +++
 .../{test4.pkg => recache_reexport_db/a.conf}      |  20 ++--
 testsuite/tests/cabal/{test4.pkg => test7a.pkg}    |  20 ++--
 testsuite/tests/cabal/test7b.pkg                   |  17 ++++
 utils/ghc-cabal/ghc-cabal.cabal                    |   3 +-
 utils/ghc-pkg/Main.hs                              |  55 ++++++++++-
 utils/ghc-pkg/ghc-pkg.cabal                        |   4 +-
 utils/ghctags/ghctags.cabal                        |   3 +-
 utils/haddock                                      |   2 +-
 41 files changed, 453 insertions(+), 79 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 7f5c10864e7c26b90c7ff4ed09d00c8a09aa4349


More information about the ghc-commits mailing list