[commit: ghc] master: The final batch of changes for the new coercion representation (c8c2f6b)
Simon Peyton Jones
simonpj at microsoft.com
Thu May 12 12:10:39 CEST 2011
Repository : ssh://darcs.haskell.org//srv/darcs/ghc
On branch : master
http://hackage.haskell.org/trac/ghc/changeset/c8c2f6bb7d79a2a6aeaa3233363fdf0bbbfad205
>---------------------------------------------------------------
commit c8c2f6bb7d79a2a6aeaa3233363fdf0bbbfad205
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date: Thu May 12 11:09:28 2011 +0100
The final batch of changes for the new coercion representation
* Fix bugs in the packing and unpacking of data
constructors with equality predicates in their types
* Remove PredCo altogether; instead, coercions between predicated
types (like (Eq a, [a]~b) => blah) are treated as if they
were precisely their underlying representation type
Eq a -> ((~) [a] b) -> blah
in this case
* Similarly, Type.coreView no longer treats equality
predciates specially.
* Implement the cast-of-coercion optimisation in
Simplify.simplCoercionF
Numerous other small bug-fixes and refactorings.
Annoyingly, OptCoercion had Windows line endings, and this
patch switches to Unix, so it looks as if every line has changed.
compiler/basicTypes/DataCon.lhs | 2 +-
compiler/basicTypes/MkId.lhs | 19 +++--
compiler/coreSyn/CoreFVs.lhs | 3 +-
compiler/coreSyn/CoreLint.lhs | 14 ----
compiler/coreSyn/CoreSyn.lhs | 5 +-
compiler/coreSyn/MkExternalCore.lhs | 7 +--
compiler/deSugar/DsUtils.lhs | 9 ++-
compiler/iface/IfaceType.lhs | 1 -
compiler/iface/TcIface.lhs | 3 +-
compiler/main/PprTyThing.hs | 5 +-
compiler/simplCore/FloatIn.lhs | 19 +++---
compiler/simplCore/SetLevels.lhs | 4 +-
compiler/simplCore/SimplEnv.lhs | 27 +++++---
compiler/simplCore/SimplUtils.lhs | 8 ++
compiler/simplCore/Simplify.lhs | 91 ++++++++++++++------------
compiler/stgSyn/CoreToStg.lhs | 5 +-
compiler/typecheck/TcEnv.lhs | 1 -
compiler/typecheck/TcHsSyn.lhs | 3 +-
compiler/typecheck/TcRnDriver.lhs | 11 +---
compiler/typecheck/TcType.lhs | 5 --
compiler/types/Coercion.lhs | 125 ++++++++++++++--------------------
compiler/types/FunDeps.lhs | 2 +-
compiler/types/OptCoercion.lhs | 39 -----------
compiler/types/Type.lhs | 32 +--------
24 files changed, 175 insertions(+), 265 deletions(-)
Diff suppressed because of size. To see it, use:
git show c8c2f6bb7d79a2a6aeaa3233363fdf0bbbfad205
More information about the Cvs-ghc
mailing list