[commit: ghc] wip/names3: Handle deserialization of tuples, etc specifically (0dfbea4)
git at git.haskell.org
git at git.haskell.org
Thu Oct 13 22:34:35 UTC 2016
Repository : ssh://git@git.haskell.org/ghc
On branch : wip/names3
Link : http://ghc.haskell.org/trac/ghc/changeset/0dfbea437a0875516a472f70c896caf5a5868d75/ghc
>---------------------------------------------------------------
commit 0dfbea437a0875516a472f70c896caf5a5868d75
Author: Ben Gamari <ben at smart-cactus.org>
Date: Tue Oct 11 22:59:38 2016 -0400
Handle deserialization of tuples, etc specifically
Previously BinIface would build a UniqFM containing all of the known-key
things and use this to resolve the Names of known-key things during
interface file deserialization. However, this has the disadvantage of
building up a rather large map containing all type and data constructors
for anonymous sums and tuples.
We now instead add codepaths to map a unique back to its associated
known key name, allowing us to greatly shrink the size of the map.
>---------------------------------------------------------------
0dfbea437a0875516a472f70c896caf5a5868d75
compiler/basicTypes/Name.hs | 5 +-
compiler/basicTypes/Name.hs-boot | 4 -
compiler/basicTypes/NameCache.hs | 115 ++++++++++++++
compiler/basicTypes/Unique.hs | 47 ++----
compiler/ghc.cabal.in | 3 +
compiler/ghc.mk | 3 +
compiler/iface/BinFingerprint.hs | 46 ++++++
compiler/iface/BinIface.hs | 150 ++----------------
compiler/iface/FlagChecker.hs | 4 +-
compiler/iface/IfaceEnv.hs | 132 +++-------------
compiler/iface/IfaceSyn.hs | 175 ++++++++++++---------
compiler/iface/LoadIface.hs | 4 +-
compiler/iface/MkIface.hs | 95 ++++++-----
compiler/iface/TcIface.hs | 65 ++++----
compiler/main/HscMain.hs | 39 +----
compiler/main/HscTypes.hs | 20 +--
compiler/main/TidyPgm.hs | 1 +
compiler/prelude/KnownUniques.hs | 149 ++++++++++++++++++
compiler/prelude/KnownUniques.hs-boot | 17 ++
compiler/prelude/PrelInfo.hs | 156 ++++++++++++------
compiler/prelude/TysWiredIn.hs | 76 +++++++--
compiler/simplCore/CoreMonad.hs | 1 +
compiler/typecheck/TcRnDriver.hs | 11 +-
compiler/utils/Binary.hs | 80 ++++++----
compiler/utils/Fingerprint.hsc | 15 +-
ghc/Main.hs | 3 +-
libraries/base/GHC/Fingerprint.hs | 1 -
testsuite/tests/perf/compiler/all.T | 3 +-
.../tests/typecheck/should_fail/T12035j.stderr | 2 +-
29 files changed, 838 insertions(+), 584 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 0dfbea437a0875516a472f70c896caf5a5868d75
More information about the ghc-commits
mailing list