[commit: ghc] master: The Backpack patch. (00b530d)

git at git.haskell.org git at git.haskell.org
Sat Oct 8 08:38:18 UTC 2016


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

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/00b530d5402aaa37e4085ecdcae0ae54454736c1/ghc

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

commit 00b530d5402aaa37e4085ecdcae0ae54454736c1
Author: Edward Z. Yang <ezyang at cs.stanford.edu>
Date:   Sat Oct 10 12:01:14 2015 -0700

    The Backpack patch.
    
    Summary:
    This patch implements Backpack for GHC.  It's a big patch but I've tried quite
    hard to keep things, by-in-large, self-contained.
    
    The user facing specification for Backpack can be found at:
    
        https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst
    
    A guide to the implementation can be found at:
    
        https://github.com/ezyang/ghc-proposals/blob/backpack-impl/proposals/0000-backpack-impl.rst
    
    Has a submodule update for Cabal, as well as a submodule update
    for filepath to handle more strict checking of cabal-version.
    
    Signed-off-by: Edward Z. Yang <ezyang at cs.stanford.edu>
    
    Test Plan: validate
    
    Reviewers: simonpj, austin, simonmar, bgamari, goldfire
    
    Subscribers: thomie, mpickering
    
    Differential Revision: https://phabricator.haskell.org/D1482


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

00b530d5402aaa37e4085ecdcae0ae54454736c1
 compiler/backpack/BkpSyn.hs                        |  77 ++
 compiler/backpack/DriverBkp.hs                     | 777 +++++++++++++++++++++
 compiler/backpack/NameShape.hs                     | 281 ++++++++
 compiler/backpack/RnModIface.hs                    | 614 ++++++++++++++++
 compiler/basicTypes/Module.hs                      | 645 +++++++++++++++--
 compiler/basicTypes/Module.hs-boot                 |   3 +
 compiler/basicTypes/Name.hs                        |   7 +-
 compiler/deSugar/Desugar.hs                        |  20 +-
 compiler/ghc.cabal.in                              |   6 +
 compiler/iface/IfaceEnv.hs                         |  28 +-
 compiler/iface/IfaceEnv.hs-boot                    |   9 +
 compiler/iface/IfaceSyn.hs                         |   3 +-
 compiler/iface/LoadIface.hs                        | 133 +++-
 compiler/iface/LoadIface.hs-boot                   |   7 +
 compiler/iface/MkIface.hs                          | 103 ++-
 compiler/iface/TcIface.hs                          | 170 ++++-
 compiler/main/DriverPipeline.hs                    |   4 +-
 compiler/main/DynFlags.hs                          | 119 ++--
 compiler/main/Finder.hs                            |  10 +-
 compiler/main/GhcMake.hs                           | 123 +++-
 compiler/main/HscMain.hs                           |  56 +-
 compiler/main/HscTypes.hs                          | 104 ++-
 compiler/main/PackageConfig.hs                     |  23 +-
 compiler/main/PackageConfig.hs-boot                |   7 +
 compiler/main/Packages.hs                          | 437 +++++++++---
 compiler/main/Packages.hs-boot                     |  10 +-
 compiler/parser/Lexer.x                            |  10 +
 compiler/parser/Parser.y                           | 114 ++-
 compiler/rename/RnEnv.hs                           |  40 +-
 compiler/rename/RnNames.hs                         |   9 +-
 compiler/typecheck/Inst.hs                         |   9 +-
 compiler/typecheck/TcBackpack.hs                   | 552 +++++++++++++++
 compiler/typecheck/TcEnv.hs                        |   4 +-
 compiler/typecheck/TcRnDriver.hs                   | 211 ++----
 compiler/typecheck/TcRnDriver.hs-boot              |  11 +
 compiler/typecheck/TcRnMonad.hs                    |  53 +-
 compiler/typecheck/TcRnTypes.hs                    | 146 ++--
 compiler/typecheck/TcSplice.hs                     |   4 +-
 compiler/types/InstEnv.hs                          |   4 +
 compiler/utils/Outputable.hs                       |   2 +-
 ghc/Main.hs                                        |  14 +-
 libraries/Cabal                                    |   2 +-
 libraries/ghc-boot/GHC/PackageDb.hs                | 134 +++-
 testsuite/.gitignore                               |   4 +
 testsuite/driver/extra_files.py                    |   4 +-
 testsuite/driver/testglobals.py                    |   3 +
 testsuite/driver/testlib.py                        |  40 +-
 testsuite/tests/{ado => backpack}/Makefile         |   0
 .../should_compile => backpack/cabal}/Makefile     |   0
 testsuite/tests/backpack/cabal/bkpcabal01/Main.hs  |   2 +
 testsuite/tests/backpack/cabal/bkpcabal01/Makefile |  71 ++
 .../cabal05 => backpack/cabal/bkpcabal01}/Setup.hs |   0
 testsuite/tests/backpack/cabal/bkpcabal01/all.T    |   9 +
 .../backpack/cabal/bkpcabal01/bkpcabal01.cabal     |  33 +
 .../backpack/cabal/bkpcabal01/bkpcabal01.stdout    |   0
 .../tests/backpack/cabal/bkpcabal01/impl/H.hs      |   2 +
 .../tests/backpack/cabal/bkpcabal01/impl/I.hs      |   1 +
 testsuite/tests/backpack/cabal/bkpcabal01/p/H.hsig |   2 +
 .../tests/backpack/cabal/bkpcabal01/p/P.hs.in1     |   3 +
 .../tests/backpack/cabal/bkpcabal01/p/P.hs.in2     |   3 +
 testsuite/tests/backpack/cabal/bkpcabal01/q/I.hsig |   1 +
 .../tests/backpack/cabal/bkpcabal01/q/Q.hs.in1     |   3 +
 .../tests/backpack/cabal/bkpcabal01/q/Q.hs.in2     |   3 +
 testsuite/tests/backpack/cabal/bkpcabal02/Makefile |  24 +
 .../cabal05 => backpack/cabal/bkpcabal02}/Setup.hs |   0
 testsuite/tests/backpack/cabal/bkpcabal02/all.T    |   9 +
 .../backpack/cabal/bkpcabal02/bkpcabal02.cabal     |  19 +
 .../backpack/cabal/bkpcabal02/bkpcabal02.stderr    |   7 +
 .../backpack/cabal/bkpcabal02/bkpcabal02.stdout    |   4 +
 .../tests/backpack/cabal/bkpcabal02/p/.gitignore   |   1 +
 .../tests/backpack/cabal/bkpcabal02/p/H.hsig.in1   |   2 +
 .../tests/backpack/cabal/bkpcabal02/p/H.hsig.in2   |   2 +
 testsuite/tests/backpack/cabal/bkpcabal02/q/H.hsig |   2 +
 .../should_compile => backpack/reexport}/Makefile  |   0
 testsuite/tests/backpack/reexport/all.T            |   7 +
 testsuite/tests/backpack/reexport/bkpreex01.bkp    |  13 +
 testsuite/tests/backpack/reexport/bkpreex01.stderr |   6 +
 testsuite/tests/backpack/reexport/bkpreex02.bkp    |  27 +
 testsuite/tests/backpack/reexport/bkpreex02.stderr |  27 +
 testsuite/tests/backpack/reexport/bkpreex03.bkp    |   9 +
 testsuite/tests/backpack/reexport/bkpreex03.stderr |   5 +
 testsuite/tests/backpack/reexport/bkpreex04.bkp    |   7 +
 testsuite/tests/backpack/reexport/bkpreex04.stderr |   4 +
 testsuite/tests/backpack/reexport/bkpreex05.bkp    |  28 +
 testsuite/tests/backpack/reexport/bkpreex06.bkp    |  11 +
 testsuite/tests/backpack/reexport/bkpreex06.stderr |   8 +
 .../should_compile/Makefile                        |   0
 testsuite/tests/backpack/should_compile/all.T      |  31 +
 testsuite/tests/backpack/should_compile/bkp01.bkp  |  20 +
 .../tests/backpack/should_compile/bkp01.stderr     |  18 +
 .../tests/backpack/should_compile/bkp01.stdout     |  20 +
 .../tests/backpack/should_compile/bkp01c.stdout    |  18 +
 testsuite/tests/backpack/should_compile/bkp02.bkp  |  18 +
 .../tests/backpack/should_compile/bkp02.stderr     |  14 +
 .../tests/backpack/should_compile/bkp02.stdout     |  26 +
 .../tests/backpack/should_compile/bkp03.stderr     |  25 +
 .../tests/backpack/should_compile/bkp04.stderr     |   4 +
 .../tests/backpack/should_compile/bkp05.stderr     |  19 +
 .../tests/backpack/should_compile/bkp06.stderr     |   8 +
 testsuite/tests/backpack/should_compile/bkp07.bkp  |   9 +
 .../tests/backpack/should_compile/bkp07.stderr     |   5 +
 testsuite/tests/backpack/should_compile/bkp08.bkp  |  12 +
 .../tests/backpack/should_compile/bkp08.stderr     |  12 +
 testsuite/tests/backpack/should_compile/bkp09.bkp  |  30 +
 .../tests/backpack/should_compile/bkp09.stderr     |  26 +
 testsuite/tests/backpack/should_compile/bkp10.bkp  |  13 +
 .../tests/backpack/should_compile/bkp10.stderr     |   6 +
 testsuite/tests/backpack/should_compile/bkp11.bkp  |  17 +
 .../tests/backpack/should_compile/bkp11.stderr     |   7 +
 testsuite/tests/backpack/should_compile/bkp12.bkp  |  15 +
 .../tests/backpack/should_compile/bkp12.stderr     |  18 +
 .../tests/backpack/should_compile/bkp13.stderr     |   6 +
 testsuite/tests/backpack/should_compile/bkp14.bkp  |  23 +
 .../tests/backpack/should_compile/bkp14.stderr     |  11 +
 testsuite/tests/backpack/should_compile/bkp15.bkp  |  82 +++
 .../tests/backpack/should_compile/bkp15.stderr     |  25 +
 testsuite/tests/backpack/should_compile/bkp16.bkp  |   8 +
 .../tests/backpack/should_compile/bkp16.stderr     |   8 +
 testsuite/tests/backpack/should_compile/bkp17.bkp  |   6 +
 .../tests/backpack/should_compile/bkp17.stderr     |  10 +
 testsuite/tests/backpack/should_compile/bkp18.bkp  |  18 +
 .../tests/backpack/should_compile/bkp18.stderr     |  13 +
 testsuite/tests/backpack/should_compile/bkp19.bkp  |  18 +
 .../tests/backpack/should_compile/bkp19.stderr     |  13 +
 testsuite/tests/backpack/should_compile/bkp20.bkp  |  22 +
 .../tests/backpack/should_compile/bkp20.stderr     |  22 +
 testsuite/tests/backpack/should_compile/bkp21.bkp  |  23 +
 .../tests/backpack/should_compile/bkp21.stderr     |  10 +
 .../tests/backpack/should_compile/bkp22.stderr     |  18 +
 testsuite/tests/backpack/should_compile/bkp23.bkp  |  42 ++
 .../tests/backpack/should_compile/bkp23.stderr     |  24 +
 testsuite/tests/backpack/should_compile/bkp24.bkp  |  30 +
 .../tests/backpack/should_compile/bkp24.stderr     |  27 +
 testsuite/tests/backpack/should_compile/bkp25.bkp  |  28 +
 .../tests/backpack/should_compile/bkp25.stderr     |  11 +
 testsuite/tests/backpack/should_compile/bkp26.bkp  |  21 +
 .../tests/backpack/should_compile/bkp26.stderr     |  13 +
 testsuite/tests/backpack/should_compile/bkp27.bkp  |  25 +
 .../tests/backpack/should_compile/bkp27.stderr     |  14 +
 testsuite/tests/backpack/should_compile/bkp28.bkp  |  17 +
 .../tests/backpack/should_compile/bkp28.stderr     |   8 +
 testsuite/tests/backpack/should_compile/bkp29.bkp  |  14 +
 .../tests/backpack/should_compile/bkp29.stderr     |   7 +
 testsuite/tests/backpack/should_compile/bkp30.bkp  |  15 +
 .../tests/backpack/should_compile/bkp30.stderr     |   7 +
 testsuite/tests/backpack/should_compile/bkp31.bkp  |  16 +
 .../tests/backpack/should_compile/bkp31.stderr     |   8 +
 testsuite/tests/backpack/should_compile/bkp32.bkp  |  92 +++
 .../tests/backpack/should_compile/bkp32.stderr     |  33 +
 testsuite/tests/backpack/should_compile/bkp33.bkp  |  21 +
 .../tests/backpack/should_compile/bkp33.stderr     |  14 +
 testsuite/tests/backpack/should_compile/bkp34.bkp  |  20 +
 .../tests/backpack/should_compile/bkp34.stderr     |   7 +
 testsuite/tests/backpack/should_compile/bkp35.bkp  |  28 +
 testsuite/tests/backpack/should_compile/bkp36.bkp  |  22 +
 .../tests/backpack/should_compile/bkp36.stderr     |   9 +
 .../should_fail}/Makefile                          |   0
 testsuite/tests/backpack/should_fail/all.T         |  21 +
 testsuite/tests/backpack/should_fail/bkpfail01.bkp |  16 +
 .../tests/backpack/should_fail/bkpfail01.stderr    |  17 +
 testsuite/tests/backpack/should_fail/bkpfail03.bkp |  10 +
 .../tests/backpack/should_fail/bkpfail03.stderr    |  16 +
 testsuite/tests/backpack/should_fail/bkpfail04.bkp |  15 +
 .../tests/backpack/should_fail/bkpfail04.stderr    |  15 +
 testsuite/tests/backpack/should_fail/bkpfail05.bkp |  22 +
 .../tests/backpack/should_fail/bkpfail05.stderr    |  21 +
 testsuite/tests/backpack/should_fail/bkpfail06.bkp |  14 +
 .../tests/backpack/should_fail/bkpfail06.stderr    |  19 +
 testsuite/tests/backpack/should_fail/bkpfail07.bkp |  10 +
 .../tests/backpack/should_fail/bkpfail07.stderr    |  14 +
 testsuite/tests/backpack/should_fail/bkpfail09.bkp |  19 +
 .../tests/backpack/should_fail/bkpfail09.stderr    |  15 +
 testsuite/tests/backpack/should_fail/bkpfail10.bkp |  18 +
 .../tests/backpack/should_fail/bkpfail10.stderr    |  24 +
 testsuite/tests/backpack/should_fail/bkpfail11.bkp |  21 +
 .../tests/backpack/should_fail/bkpfail11.stderr    |  18 +
 testsuite/tests/backpack/should_fail/bkpfail12.bkp |  14 +
 .../tests/backpack/should_fail/bkpfail12.stderr    |  15 +
 testsuite/tests/backpack/should_fail/bkpfail13.bkp |  13 +
 .../tests/backpack/should_fail/bkpfail13.stderr    |  15 +
 testsuite/tests/backpack/should_fail/bkpfail14.bkp |  18 +
 .../tests/backpack/should_fail/bkpfail14.stderr    |  18 +
 testsuite/tests/backpack/should_fail/bkpfail15.bkp |  12 +
 testsuite/tests/backpack/should_fail/bkpfail16.bkp |   5 +
 .../tests/backpack/should_fail/bkpfail16.stderr    |  10 +
 testsuite/tests/backpack/should_fail/bkpfail17.bkp |   6 +
 .../tests/backpack/should_fail/bkpfail17.stderr    |  16 +
 testsuite/tests/backpack/should_fail/bkpfail18.bkp |   4 +
 .../tests/backpack/should_fail/bkpfail18.stderr    |  12 +
 testsuite/tests/backpack/should_fail/bkpfail19.bkp |   5 +
 .../tests/backpack/should_fail/bkpfail19.stderr    |  11 +
 testsuite/tests/backpack/should_fail/bkpfail20.bkp |   9 +
 .../tests/backpack/should_fail/bkpfail20.stderr    |   9 +
 testsuite/tests/backpack/should_fail/bkpfail21.bkp |  13 +
 .../tests/backpack/should_fail/bkpfail21.stderr    |  14 +
 testsuite/tests/backpack/should_fail/bkpfail22.bkp |  21 +
 .../tests/backpack/should_fail/bkpfail22.stderr    |   1 +
 .../should_run}/Makefile                           |   0
 testsuite/tests/backpack/should_run/all.T          |   8 +
 testsuite/tests/backpack/should_run/bkprun01.bkp   |  13 +
 .../should_run/bkprun01.stdout}                    |   0
 testsuite/tests/backpack/should_run/bkprun02.bkp   |  23 +
 .../should_run/bkprun02.stdout}                    |   0
 testsuite/tests/backpack/should_run/bkprun03.bkp   |  25 +
 .../tests/backpack/should_run/bkprun03.stdout      |   0
 testsuite/tests/backpack/should_run/bkprun04.bkp   |  26 +
 .../should_run/bkprun04.stdout}                    |   0
 testsuite/tests/backpack/should_run/bkprun05.bkp   | 151 ++++
 .../tests/backpack/should_run/bkprun05.stderr      |   4 +
 .../should_run/bkprun05.stdout}                    |   0
 testsuite/tests/backpack/should_run/bkprun06.bkp   | 164 +++++
 .../should_run/bkprun06.stdout}                    |   0
 testsuite/tests/backpack/should_run/bkprun07.bkp   |  32 +
 .../should_run/bkprun07.stdout}                    |   0
 testsuite/tests/backpack/should_run/bkprun08.bkp   |  24 +
 .../tests/backpack/should_run/bkprun08.stdout      |   1 +
 testsuite/tests/cabal/cabal03/cabal03.stderr       |   7 +-
 .../tests/driver/dynamicToo/dynamicToo005/Makefile |  14 +-
 .../dynamicToo/dynamicToo005/dynamicToo005.bkp     |   6 +
 .../tests/driver/dynamicToo/dynamicToo006/A.hsig   |   5 -
 .../tests/driver/dynamicToo/dynamicToo006/B.hs     |   8 -
 .../tests/driver/dynamicToo/dynamicToo006/Makefile |  20 -
 .../tests/driver/dynamicToo/dynamicToo006/test.T   |   9 -
 testsuite/tests/driver/recomp005/recomp005.stdout  |   4 +-
 testsuite/tests/driver/sigof01/A.hs                |  10 -
 testsuite/tests/driver/sigof01/B.hsig              |   6 -
 testsuite/tests/driver/sigof01/Main.hs             |   6 -
 testsuite/tests/driver/sigof01/Makefile            |  19 -
 testsuite/tests/driver/sigof01/all.T               |   9 -
 testsuite/tests/driver/sigof01/sigof01m.stdout     |   7 -
 testsuite/tests/driver/sigof02/Double.hs           |  13 -
 testsuite/tests/driver/sigof02/Main.hs             |  11 -
 testsuite/tests/driver/sigof02/Makefile            |  71 --
 testsuite/tests/driver/sigof02/Map.hsig            | 132 ----
 testsuite/tests/driver/sigof02/MapAsSet.hsig       |  11 -
 testsuite/tests/driver/sigof02/all.T               |  41 --
 testsuite/tests/driver/sigof02/sigof02.stderr      |   4 -
 testsuite/tests/driver/sigof02/sigof02dm.stdout    |   8 -
 testsuite/tests/driver/sigof02/sigof02dmt.stderr   |   9 -
 testsuite/tests/driver/sigof02/sigof02dmt.stdout   |   3 -
 testsuite/tests/driver/sigof02/sigof02dt.stderr    |   9 -
 testsuite/tests/driver/sigof02/sigof02m.stderr     |   4 -
 testsuite/tests/driver/sigof02/sigof02m.stdout     |   9 -
 testsuite/tests/driver/sigof02/sigof02mt.stdout    |   2 -
 testsuite/tests/driver/sigof03/A.hs                |   3 -
 testsuite/tests/driver/sigof03/ASig1.hsig          |   3 -
 testsuite/tests/driver/sigof03/ASig2.hsig          |   3 -
 testsuite/tests/driver/sigof03/Main.hs             |   3 -
 testsuite/tests/driver/sigof03/Makefile            |  26 -
 testsuite/tests/driver/sigof03/all.T               |  11 -
 testsuite/tests/driver/sigof04/Makefile            |  10 -
 testsuite/tests/driver/sigof04/Sig.hsig            |   2 -
 testsuite/tests/driver/sigof04/all.T               |   4 -
 testsuite/tests/driver/sigof04/sigof04.stderr      |   3 -
 testsuite/tests/ghci/scripts/T5979.stderr          |   6 +-
 .../haddock/haddock_examples/haddock.Test.stderr   |  16 +-
 .../should_fail/T11167_ambiguous_fixity.stderr     |   4 +-
 testsuite/tests/package/package07e.stderr          |  13 +-
 testsuite/tests/package/package08e.stderr          |  13 +-
 testsuite/tests/perf/haddock/all.T                 |   3 +-
 testsuite/tests/plugins/T11244.stderr              |   3 +-
 testsuite/tests/safeHaskell/check/Check07.stderr   |   4 +-
 testsuite/tests/safeHaskell/check/Check08.stderr   |   6 +-
 .../safeHaskell/safeLanguage/SafeLang12.stderr     |   3 +-
 testsuite/tests/typecheck/should_compile/all.T     |   1 -
 .../tests/typecheck/should_compile/tc264.hsig      |   2 -
 .../tests/typecheck/should_fail/T6018fail.stderr   |   8 +-
 testsuite/tests/typecheck/should_fail/all.T        |   4 -
 .../tests/typecheck/should_fail/tcfail219.hsig     |   2 -
 .../tests/typecheck/should_fail/tcfail219.stderr   |   3 -
 .../tests/typecheck/should_fail/tcfail220.hsig     |   4 -
 .../tests/typecheck/should_fail/tcfail220.stderr   |   9 -
 .../tests/typecheck/should_fail/tcfail221.hsig     |   3 -
 .../tests/typecheck/should_fail/tcfail221.stderr   |   6 -
 .../tests/typecheck/should_fail/tcfail222.hsig     |   2 -
 .../tests/typecheck/should_fail/tcfail222.stderr   |   4 -
 utils/ghc-pkg/Main.hs                              |  56 +-
 277 files changed, 7296 insertions(+), 1242 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 00b530d5402aaa37e4085ecdcae0ae54454736c1


More information about the ghc-commits mailing list