[commit: ghc] master: Revise the inert-set invariants again (1d44261)

git at git.haskell.org git at git.haskell.org
Mon Dec 8 15:02:10 UTC 2014


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

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/1d44261c01fe2b8e455ed454e7c4b49d26c433b2/ghc

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

commit 1d44261c01fe2b8e455ed454e7c4b49d26c433b2
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date:   Mon Dec 8 13:23:31 2014 +0000

    Revise the inert-set invariants again
    
    In particular this patch
    
    - Accepts that rewriting with the inert CTyEqCans should be done recursively
      (hence removing the Bool result from flattenTyVarOuter)
    
    - Refines the kick-out criterion, in paticular to avoid kick-out of (a -f-> ty)
      when f cannot rewrite f.  This is true of Wanteds and hence reduces kick-outs
      of Wanteds, perhaps by a lot
    
    This stuff is not fully documented because the details are still settling, but
    it's looking good.
    
    (And it validates.)
    
    This patch includes the testsuite wibbles.  perf/compiler/T5030 and
    T5837 both improve in bytes-allocated (by 11% and 13% resp), which is
    good.  I'm not sure which of today's short series of patches is
    responsible, nor do I mind much.  (One could find out if necessary.)


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

1d44261c01fe2b8e455ed454e7c4b49d26c433b2
 compiler/typecheck/TcCanonical.hs                  |  2 +-
 compiler/typecheck/TcFlatten.hs                    | 22 +++++++++-----------
 compiler/typecheck/TcInteract.hs                   | 24 +++++++++++++++++-----
 .../tests/indexed-types/should_compile/GADT1.hs    | 14 +++++++++++++
 testsuite/tests/perf/compiler/all.T                |  6 ++++--
 .../typecheck/should_fail/FrozenErrorTests.stderr  |  2 +-
 testsuite/tests/typecheck/should_fail/T7856.hs     |  4 ++--
 testsuite/tests/typecheck/should_fail/T8603.stderr |  2 +-
 8 files changed, 52 insertions(+), 24 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 1d44261c01fe2b8e455ed454e7c4b49d26c433b2


More information about the ghc-commits mailing list