[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