[commit: ghc] ghc-7.6: Merge b737a4 into the 7.6 branch, curing Trac #7748 (3ed9baf)
Simon Peyton Jones
simonpj at microsoft.com
Tue Apr 16 08:29:55 CEST 2013
Repository : http://darcs.haskell.org/ghc.git/
On branch : ghc-7.6
https://github.com/ghc/ghc/commit/3ed9baf44904ad7ca0402f5a1b493a23d9d49253
>---------------------------------------------------------------
commit 3ed9baf44904ad7ca0402f5a1b493a23d9d49253
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date: Tue Apr 16 07:27:23 2013 +0100
Merge b737a4 into the 7.6 branch, curing Trac #7748
The caching of goals in the constraint solver led to a
equality-constraint loop even in a really simple program!
commit b737a45391201fd475b89227ed1d7c9b72b24eea
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date: Fri Aug 31 10:05:03 2012 +0100
More simplifications to the constraint solver
* inert_solved becomes dictionaries-only, inert_solved_dicts
* inert_solved_dicts is used only to cache the result of uses
of a top level instance declaration, just like inert_solved_funeqs
* That in turn simplifies xCtFlavor and rewriteCtFlavor, because
they no longer need a "should I cache" parameter. (Moreover the
settings for this parameter were very subtle; it's easy to get
loops if you cache too much. Caching only top-level instance
uses is much safer, and eliminates all these subtle cases.)
compiler/typecheck/TcCanonical.lhs | 27 +++++-----
compiler/typecheck/TcInteract.lhs | 18 +++----
compiler/typecheck/TcSMonad.lhs | 104 +++++++++++++++----------------------
compiler/typecheck/TcSimplify.lhs | 2 +-
4 files changed, 66 insertions(+), 85 deletions(-)
Diff suppressed because of size. To see it, use:
git show 3ed9baf44904ad7ca0402f5a1b493a23d9d49253
More information about the ghc-commits
mailing list