[commit: ghc] master: Improve piResultTys and friends (4d031cf)

git at git.haskell.org git at git.haskell.org
Thu Feb 18 12:52:38 UTC 2016


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

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/4d031cf91c5eed9b162703daee274bbbe94bdc42/ghc

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

commit 4d031cf91c5eed9b162703daee274bbbe94bdc42
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date:   Thu Feb 18 11:34:12 2016 +0000

    Improve piResultTys and friends
    
    Several things here:
    
    * Re-implement piResultTys so that its substitution has
      the correct in-scope set
    
      That means paying close attention to performance, since as we
      discovered in Trac #11371, it's a heavily used function and
      is often used on ordinary function types, with no foralls to
      worry about substituting.
    
    * Kill off applyTys, which was just the same as piResultTys.
    
    * Re-engineer MkCore.mkCoreApps so that it calls piResultTys,
      rather than repeatedly calling piResultTy.


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

4d031cf91c5eed9b162703daee274bbbe94bdc42
 compiler/coreSyn/CoreLint.hs     |   2 +-
 compiler/coreSyn/CoreUtils.hs    |   6 +-
 compiler/coreSyn/MkCore.hs       |  26 +++----
 compiler/iface/BuildTyCl.hs      |   2 +-
 compiler/typecheck/TcClassDcl.hs |   4 +-
 compiler/typecheck/TcInstDcls.hs |   2 +-
 compiler/typecheck/TcType.hs     |   2 +-
 compiler/types/Coercion.hs       |   9 ++-
 compiler/types/Type.hs           | 149 ++++++++++++++++++++++-----------------
 9 files changed, 110 insertions(+), 92 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 4d031cf91c5eed9b162703daee274bbbe94bdc42


More information about the ghc-commits mailing list