[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