1. 24 May, 2007 2 commits
  2. 23 May, 2007 1 commit
  3. 19 May, 2007 4 commits
  4. 18 May, 2007 2 commits
  5. 24 May, 2007 1 commit
  6. 23 May, 2007 4 commits
    • simonpj@microsoft.com's avatar
      Improve the interaction of 'seq' and associated data types · 9670d664
      simonpj@microsoft.com authored
      Roman produced programs involving associated types that did not optimise well.
      His programs were something like this:
        data family T a
        data instance T Int = MkT Bool Char
        bar :: T Int -> Int
        bar t = t `seq` loop 0
      	  loop = ...
      You'd think that the `seq` should unbox 't' outside the loop, since
      a (T Int) is just a MkT pair.  
      The most robust way to make this happen is for the simplifier to understand
      a bit about type-family instances.   See 
      	Note [Improving seq]
      in Simplify.lhs.  We use FamInstEnv.topNormaliseType to do the interesting
      To make this happen I did a bit of refactoring to the simplifier
      I'd previously done a very similar transformation in LiberateCase, but it
      was happening too late.  So this patch takes it out of LiberateCase as
      well as adding it to Simplify.
    • simonpj@microsoft.com's avatar
      In GHCi, bind identifiers at TH level 'impLevel' · 800dba35
      simonpj@microsoft.com authored
      Consder Trac #1265, which does this in GHCi:
      	Prelude> let doit = fail "Code not written yet" :: ExpQ
      	Prelude> $(doit)
      Even though 'doit' is defined "in the same module", it's OK to use it in a splice
      because it'll have been fully compiled to bytecode.  (Contrast the situation if
      these two lines appeared in a single, compiled module.)
      Hence we want to bind 'doit' at TH's "imported level" (TcRnTypes.impLevel).  
      This used to happen because GHCi-bound Ids were in the *global* type
      env (and hence at "imported level").  But since SimonM moved
      GHCi-bound ids to the *local* type env (for good reasons) the above
      program has been rejected.
      This patch makes it work again.
    • simonpj@microsoft.com's avatar
      White-space only · 87b3c589
      simonpj@microsoft.com authored
    • simonpj@microsoft.com's avatar
      Drop redundant import · 56f04f2e
      simonpj@microsoft.com authored
  7. 21 May, 2007 1 commit
  8. 11 May, 2007 1 commit
  9. 14 May, 2007 1 commit
  10. 23 May, 2007 1 commit
  11. 11 May, 2007 1 commit
  12. 10 May, 2007 1 commit
  13. 22 May, 2007 1 commit
  14. 21 May, 2007 4 commits
  15. 20 May, 2007 1 commit
  16. 21 May, 2007 1 commit
  17. 20 May, 2007 4 commits
  18. 19 May, 2007 1 commit
  19. 30 Apr, 2007 2 commits
  20. 29 Apr, 2007 1 commit
  21. 19 May, 2007 1 commit
  22. 18 May, 2007 4 commits
    • Ian Lynagh's avatar
      Avoid the need to rerun configure when we install · 2f181d8d
      Ian Lynagh authored
      This also means we don't need to carry around 10s of megs of Setup
      executables in bindists.
    • Simon Marlow's avatar
      'import M' is now the same as ':module +M' at the prompt · 347780ec
      Simon Marlow authored
      Seemed like a reasonable thing to do, and only 1 line
    • Simon Marlow's avatar
      FIX: break011. · 27ebe4c5
      Simon Marlow authored
      Reset the exception flag before re-throwing the exception unless it
      was "Interrupted".  This avoids needing the double :continue for
      ordinary exceptions, but still lets us break on ^C.
    • Simon Marlow's avatar
      improve break-by-coordinate · e560c6b5
      Simon Marlow authored
      when setting a breakpoint by coordinate, if there are no spans
      covering the specified coordinate, then we take the leftmost of the
      spans to the right of the coordinate.  This means that ':break c' will
      work if c is not a function, because the first span will be on c's
      right hand side.