cvs commit: fptools/ghc/compiler/basicTypes VarEnv.lhs fptools/ghc/compiler/coreSyn CoreLint.lhs CoreUtils.lhs Subst.lhs fptools/ghc/compiler/deSugar DsForeign.lhs fptools/ghc/compiler/prelude PrelRules.lhs fptools/ghc/compiler/simplCore Simplify.lhs fptools/ghc/compiler/specialise ...

Simon Peyton Jones simonpj at haskell.org
Mon Dec 20 12:17:11 EST 2004


simonpj     2004/12/20 09:17:11 PST

  Modified files:
    ghc/compiler/basicTypes VarEnv.lhs 
    ghc/compiler/coreSyn CoreLint.lhs CoreUtils.lhs Subst.lhs 
    ghc/compiler/deSugar DsForeign.lhs 
    ghc/compiler/prelude PrelRules.lhs 
    ghc/compiler/simplCore Simplify.lhs 
    ghc/compiler/specialise Rules.lhs SpecConstr.lhs 
    ghc/compiler/stranal DmdAnal.lhs 
    ghc/compiler/typecheck TcBinds.lhs TcSimplify.lhs TcType.lhs 
    ghc/compiler/types   Type.lhs Unify.lhs 
    ghc/compiler/utils   Maybes.lhs Util.lhs 
  Log:
  	--------------------------------
  	Deal properly with dual-renaming
  	--------------------------------
  
  When comparing types and terms, and during matching, we are faced
  with 
  	\x.e1	~   \y.e2
  
  There are many pitfalls here, and GHC has never done the job properly.
  Now, at last it does, using a new abstraction VarEnv.RnEnv2.  See
  comments there for how it works.
  
  There are lots of consequential changes to use the new stuff, especially
  in 
  	types/Type (type comparison), 
  	types/Unify (matching on types)
  	coreSyn/CoreUtils (equality on expressions), 
  	specialise/Rules (matching).
  
  I'm not 100% certain of that I've covered all the bases, so let me
  know if something unexpected happens after you update.  Maybe wait until
  a nightly build has worked ok first!
  
  Revision  Changes    Path
  1.16      +120 -6    fptools/ghc/compiler/basicTypes/VarEnv.lhs
  1.82      +2 -2      fptools/ghc/compiler/coreSyn/CoreLint.lhs
  1.130     +48 -54    fptools/ghc/compiler/coreSyn/CoreUtils.lhs
  1.45      +3 -2      fptools/ghc/compiler/coreSyn/Subst.lhs
  1.85      +3 -3      fptools/ghc/compiler/deSugar/DsForeign.lhs
  1.40      +2 -2      fptools/ghc/compiler/prelude/PrelRules.lhs
  1.153     +2 -2      fptools/ghc/compiler/simplCore/Simplify.lhs
  1.43      +176 -257  fptools/ghc/compiler/specialise/Rules.lhs
  1.22      +2 -2      fptools/ghc/compiler/specialise/SpecConstr.lhs
  1.51      +2 -2      fptools/ghc/compiler/stranal/DmdAnal.lhs
  1.130     +4 -6      fptools/ghc/compiler/typecheck/TcBinds.lhs
  1.141     +1 -1      fptools/ghc/compiler/typecheck/TcSimplify.lhs
  1.113     +6 -92     fptools/ghc/compiler/typecheck/TcType.lhs
  1.127     +120 -29   fptools/ghc/compiler/types/Type.lhs
  1.16      +204 -117  fptools/ghc/compiler/types/Unify.lhs
  1.25      +10 -19    fptools/ghc/compiler/utils/Maybes.lhs
  1.70      +12 -6     fptools/ghc/compiler/utils/Util.lhs


More information about the Cvs-ghc mailing list