1. 17 Feb, 2011 1 commit
    • simonpj@microsoft.com's avatar
      Use "on the spot" solving for fundeps · 50d02935
      simonpj@microsoft.com authored
      When we spot an equality arising from a functional dependency,
      we now use that equality (a "wanted") to rewrite the work-item
      constraint right away.  This avoids two dangers
      
       Danger 1: If we send the original constraint on down the pipeline
                 it may react with an instance declaration, and in delicate
      	   situations (when a Given overlaps with an instance) that
      	   may produce new insoluble goals: see Trac #4952
      
       Danger 2: If we don't rewrite the constraint, it may re-react
                 with the same thing later, and produce the same equality
                 again --> termination worries.
      
      To achieve this required some refactoring of FunDeps.lhs (nicer
      now!).  
      
      This patch also contains a couple of unrelated improvements
      
      * A bad bug in TcSMonad.nestImplicTcS whereby the Tcs tyvars
        of an outer implication were not untouchable inside
      
      * Improved logging machinery for the type constraint solver;
        use -ddump-cs-trace (probably with a wider default line width
        -dppr-cols=200 or something)
      50d02935
  2. 15 Feb, 2011 3 commits
  3. 14 Feb, 2011 2 commits
    • simonpj@microsoft.com's avatar
      Fix exprIsDupable · 34456244
      simonpj@microsoft.com authored
      It turns out that exprIsDupable would return True for an expression of
      *arbitrary* size, provide it was a nested bunch of applications in
      which no function had more than three arguments.  That was never the
      intention, and could give rise to massive code duplication.  
      
      This patch makes it much less aggressive.
      34456244
    • simonpj@microsoft.com's avatar
      Better case-of-case transformation · 7a50e6d8
      simonpj@microsoft.com authored
      The ThunkSplitting idea in WorkWrap wasn't working at all,
      leading to Trac #4957.  The culprit is really the simplifier
      which was combining the wrong case continuations. See
      Note [Fusing case continuations] in Simplify.
      7a50e6d8
  4. 15 Feb, 2011 1 commit
  5. 14 Feb, 2011 2 commits
  6. 09 Feb, 2011 1 commit
  7. 02 Feb, 2011 2 commits
  8. 01 Feb, 2011 1 commit
  9. 14 Feb, 2011 3 commits
  10. 13 Feb, 2011 1 commit
    • dterei's avatar
      LLVM: Huge improvement to mangler speed. · 6c8893bf
      dterei authored
      The old llvm mangler was horrible! Very slow
      due to bad design and code. New version is
      linear complexity as it should be and far
      lower coefficients. This fixes trac 4838.
      6c8893bf
  11. 11 Feb, 2011 5 commits
  12. 10 Feb, 2011 2 commits
  13. 12 Jan, 2011 1 commit
  14. 09 Feb, 2011 1 commit
    • gwright@antiope.com's avatar
      Fix #4867, ghci displays negative floats incorrectly · a914a224
      gwright@antiope.com authored
      This patch fixes the erroneous relocations that caused
      the bug in ticket #4867.  External addresses and global
      offset table entries were relocated correctly, but all other
      relocations were incorrectly calculated.  This caused, for
      example, bad references to constants stored in the __const
      section of the __TEXT segment.
      
      This bug only affected OS X on 64-bit platforms.
      a914a224
  15. 01 Feb, 2011 1 commit
  16. 26 Jan, 2011 1 commit
  17. 10 Feb, 2011 2 commits
  18. 08 Feb, 2011 1 commit
  19. 10 Feb, 2011 1 commit
  20. 09 Feb, 2011 3 commits
  21. 07 Feb, 2011 1 commit
  22. 08 Feb, 2011 1 commit
  23. 07 Feb, 2011 1 commit
  24. 04 Feb, 2011 2 commits