[commit: ghc] master: Turn EvTerm (almost) into CoreExpr (#14691) (0e022e5)

git at git.haskell.org git at git.haskell.org
Fri Jan 26 16:52:33 UTC 2018


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

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/0e022e56b130ab9d277965b794e70d8d3fb29533/ghc

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

commit 0e022e56b130ab9d277965b794e70d8d3fb29533
Author: Joachim Breitner <mail at joachim-breitner.de>
Date:   Fri Jan 26 11:50:48 2018 -0500

    Turn EvTerm (almost) into CoreExpr (#14691)
    
    Ideally, I'd like to do
    
        type EvTerm = CoreExpr
    
    and the type checker builds the evidence terms as it goes. This failed,
    becuase the evidence for `Typeable` refers to local identifiers that are
    added *after* the typechecker solves constraints. Therefore, `EvTerm`
    stays a data type with two constructors: `EvExpr` for `CoreExpr`
    evidence, and `EvTypeable` for the others.
    
    Delted `Note [Memoising typeOf]`, its reference (and presumably
    relevance) was removed in 8fa4bf9.
    
    Differential Revision: https://phabricator.haskell.org/D4341


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

0e022e56b130ab9d277965b794e70d8d3fb29533
 compiler/deSugar/DsBinds.hs                        |  94 +---------
 compiler/deSugar/Match.hs                          |   4 +-
 compiler/ghc.cabal.in                              |   1 +
 compiler/typecheck/Inst.hs                         |   4 +-
 compiler/typecheck/TcCanonical.hs                  |  34 ++--
 compiler/typecheck/TcErrors.hs                     |   7 +-
 compiler/typecheck/TcEvTerm.hs                     |  69 +++++++
 compiler/typecheck/TcEvidence.hs                   | 206 ++++++++-------------
 compiler/typecheck/TcFlatten.hs                    |   2 +-
 compiler/typecheck/TcHsSyn.hs                      | 100 ++++++----
 compiler/typecheck/TcInstDcls.hs                   |   2 +-
 compiler/typecheck/TcInteract.hs                   | 118 ++++++++----
 compiler/typecheck/TcMType.hs                      |   4 +-
 compiler/typecheck/TcPatSyn.hs                     |   6 +-
 compiler/typecheck/TcPluginM.hs                    |   4 +-
 compiler/typecheck/TcRnTypes.hs                    |   8 +-
 compiler/typecheck/TcSMonad.hs                     |  31 ++--
 compiler/types/Type.hs                             |   2 +-
 .../tests/indexed-types/should_fail/T8129.stdout   |   2 +-
 testsuite/tests/perf/compiler/all.T                |   6 +-
 20 files changed, 363 insertions(+), 341 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 0e022e56b130ab9d277965b794e70d8d3fb29533


More information about the ghc-commits mailing list