1. 20 Jun, 2007 6 commits
    • Simon Marlow's avatar
      remove debugging code accidentally left in · 629e852d
      Simon Marlow authored
      629e852d
    • Ian Lynagh's avatar
      Use .NOTPARALLEL for the libraries Makefile · 8966ae35
      Ian Lynagh authored
      8966ae35
    • simonpj@microsoft.com's avatar
      Improve the handling of deriving, in error cases · f6a741fa
      simonpj@microsoft.com authored
      I'd been too ambitious with error handling for 'deriving', and got it
      entirely wrong.  This fixes it.  See extensive 
      	Note [Exotic derived instance contexts]
      in TcSimplify.  (Most of the extra lines are comments!)
      f6a741fa
    • simonpj@microsoft.com's avatar
      More refactoring in TcSimplify · 5c2ecdff
      simonpj@microsoft.com authored
      This re-jig tides up the top-level simplification, and combines in one
      well-commented function, approximateImplications, the rather ad-hoc
      way of simplifying implication constraints during type inference.
      
      Error messages get a bit better too.
      5c2ecdff
    • simonpj@microsoft.com's avatar
      Fix egregious sharing bug in LiberateCase · da5b25fe
      simonpj@microsoft.com authored
      Andy Gill writes: consider the following code
      
             f = g (case v of
                      V a b -> a : t f)
      
      where g is expensive. Liberate case will turn this into
      
             f = g (case v of
                     V a b -> a : t (letrec f = g (case v of
                                                   V a b -> a : f t)
                                      in f)
                   )
      Yikes! We evaluate g twice. This leads to a O(2^n) explosion
      if g calls back to the same code recursively.
      
      This may be the same as Trac #1366.  
      
      da5b25fe
    • andy@galois.com's avatar
      Turning off case liberation when using the hpc option, for now · d363c1fc
      andy@galois.com authored
      Consider the following code
      
           f = g (case v of
                    V a b -> a : t f)
      
      where g is expensive. Liberate case will turn this into
      
           f = g (case v of
                   V a b -> a : t (letrec f = g (case v of
                                                 V a b -> a : f t)
                                    in f)
                 )
      
      Yikes! We evaluate g twice. This leads to a O(2^n) explosion
      if g calls back to the same code recursively.
      
      This happen sometimes in HPC, because every tick is a liberate-able case,
      but is a general problem to case liberation (I think). 
      d363c1fc
  2. 19 Jun, 2007 8 commits
  3. 18 Jun, 2007 2 commits
  4. 17 Jun, 2007 1 commit
  5. 13 Jun, 2007 1 commit
  6. 17 Jun, 2007 1 commit
  7. 16 Jun, 2007 1 commit
  8. 15 Jun, 2007 2 commits
  9. 14 Jun, 2007 1 commit
  10. 13 Jun, 2007 7 commits
  11. 12 Jun, 2007 1 commit
    • Ian Lynagh's avatar
      Tweak banner printing · cedd4187
      Ian Lynagh authored
      * -{short,long}-ghci-banner are now dynamic options, so you can put
        ":set -short-ghci-banner" in .ghci
      * The -v2 banner information now always tells you what compiler booted GHC,
        and what stage the compiler is. Thus we no longer assume that stage > 1
        iff GHCI is defined.
      cedd4187
  12. 01 Jun, 2007 1 commit
  13. 09 Jun, 2007 4 commits
  14. 05 Jun, 2007 1 commit
  15. 04 Jun, 2007 2 commits
  16. 02 Jun, 2007 1 commit