1. 08 Dec, 2007 4 commits
  2. 07 Dec, 2007 1 commit
    • chak@cse.unsw.edu.au.'s avatar
      Properly keep track of whether normalising given or wanted dicts · b6d08641
      chak@cse.unsw.edu.au. authored
      - The information of whether given or wanted class dictionaries where
        normalised by rewriting wasn't always correctly propagated in TcTyFuns,
        which lead to malformed dictionary bindings.
      - Also fixes a bug in TcPat.tcConPat where GADT equalities where emitted in
        the wrong position in case bindings (which led to CoreLint failures).
      b6d08641
  3. 20 Nov, 2007 1 commit
    • chak@cse.unsw.edu.au.'s avatar
      TcPat.tcConPat uses equalities instead of GADT refinement · a003ad80
      chak@cse.unsw.edu.au. authored
      * This patch implements the use of equality constraints instead of GADT
        refinements that we have been discussing for a while.
      * It just changes TcPat.tcConPat.  It doesn't have any of the simplification
        and dead code removal that is possible due to this change.
      * At the moment, this patch breaks a fair number of GADT regression tests.
      a003ad80
  4. 07 Dec, 2007 1 commit
  5. 05 Dec, 2007 3 commits
  6. 07 Dec, 2007 1 commit
  7. 05 Dec, 2007 1 commit
  8. 03 Dec, 2007 2 commits
  9. 07 Dec, 2007 1 commit
  10. 02 Dec, 2007 2 commits
  11. 07 Dec, 2007 1 commit
  12. 06 Dec, 2007 5 commits
    • Simon Marlow's avatar
      comment only · 0cdde9d7
      Simon Marlow authored
      0cdde9d7
    • Simon Marlow's avatar
      comment typo · d5fbbe4c
      Simon Marlow authored
      d5fbbe4c
    • Simon Marlow's avatar
      add Outputable instance for OccIfaceEq · c004ec62
      Simon Marlow authored
      c004ec62
    • Simon Marlow's avatar
      Workaround for #1959: assume untracked names have changed · d5183f31
      Simon Marlow authored
      This fixes the 1959 test, but will do more recompilation than is
      strictly necessary (but only when -O is on).  Still, more
      recompilation is better than segfaults, link errors or other random
      breakage.
      d5183f31
    • Simon Marlow's avatar
      FIX part of #1959: declaration versions were not being incremented correctly · 89cc3988
      Simon Marlow authored
      We were building a mapping from ModuleName to [Occ] from the usage
      list, using the usg_mod field as the key.  Unfortunately, due to a
      very poor naming decision, usg_mod is actually the module version, not
      the ModuleName.  usg_name is the ModuleName.  Since Version is also an
      instance of Uniquable, there was no type error: all that happened was
      lookups in the map never succeeded.  I shall rename the fields of
      Usage in a separate patch.
      
      This doesn't completely fix #1959, but it gets part of the way there.
      
      I have to take partial blame as the person who wrote this fragment of
      code in late 2006 (patch "Interface file optimisation and removal of
      nameParent").
      89cc3988
  13. 05 Dec, 2007 2 commits
  14. 04 Dec, 2007 1 commit
    • mnislaih's avatar
      Teach :print to follow references (STRefs and IORefs) · f4d6209d
      mnislaih authored
      Prelude Data.IORef> :p l
      l = (_t4::Maybe Integer) : (_t5::[Maybe Integer])
      Prelude Data.IORef> p <- newIORef l
      Prelude Data.IORef> :p p
      p = GHC.IOBase.IORef (GHC.STRef.STRef {((_t6::Maybe Integer) :
                                              (_t7::[Maybe Integer]))})
      Prelude Data.IORef> :sp p
      p = GHC.IOBase.IORef (GHC.STRef.STRef {(_ : _)})
      
      
      I used braces to denote the contents of a reference.
      Perhaps there is a more appropriate notation?
      f4d6209d
  15. 02 Dec, 2007 1 commit
  16. 04 Dec, 2007 7 commits
  17. 03 Dec, 2007 1 commit
    • simonpj@microsoft.com's avatar
      Improve eta reduction, to reduce Simplifier iterations · a5f2ab64
      simonpj@microsoft.com authored
      I finally got around to investigating why the Simplifier was sometimes
      iterating so often.  There's a nice example in Text.ParserCombinators.ReadPrec,
      which produced:
      
      NOTE: Simplifier still going after 3 iterations; bailing out.  Size = 339
      NOTE: Simplifier still going after 3 iterations; bailing out.  Size = 339
      NOTE: Simplifier still going after 3 iterations; bailing out.  Size = 339
      
      No progress is being made.  It turned out that an interaction between
      eta-expansion, casts, and eta reduction was responsible. The change is
      small and simple, in SimplUtils.mkLam: do not require the body to be
      a Lam when floating the cast outwards.  
      
      I also discovered a missing side condition in the same equation, so fixing
      that is good too.  Now there is no loop when compiling ReadPrec.
      
      Should do a full nofib run though.
      a5f2ab64
  18. 02 Dec, 2007 1 commit
  19. 28 Nov, 2007 2 commits
    • simonpj@microsoft.com's avatar
      Improve pretty-printing for Insts · 12d8935e
      simonpj@microsoft.com authored
      12d8935e
    • simonpj@microsoft.com's avatar
      Reorganise TcSimplify (again); FIX Trac #1919 · 06f6f35d
      simonpj@microsoft.com authored
      This was a bit tricky.  We had a "given" dict like (d7:Eq a); then it got
      supplied to reduceImplication, which did some zonking, and emerged with
      a "needed given" (d7:Eq Int). That got everything confused.
      
      I found a way to simplify matters significantly.  Now reduceContext
      	- first deals with methods/literals/dictionaries
      	- then deals with implications
      Separating things in this way not only made the bug go away, but
      eliminated the need for the recently-added "needed-givens" results returned
      by checkLoop.  Hurrah.
      
      It's still a swamp.  But it's a bit better.
      06f6f35d
  20. 30 Nov, 2007 2 commits