1. 04 Mar, 2010 8 commits
  2. 03 Mar, 2010 1 commit
  3. 02 Mar, 2010 4 commits
  4. 01 Mar, 2010 1 commit
  5. 27 Feb, 2010 1 commit
  6. 01 Mar, 2010 5 commits
  7. 25 Feb, 2010 3 commits
  8. 27 Feb, 2010 1 commit
    • Ian Lynagh's avatar
      Fix trac #2578 · 09d2b3b2
      Ian Lynagh authored
      We define empty datatypes as not being enumerations, which means the
      empty blocks aren't generated.
      09d2b3b2
  9. 22 Feb, 2010 1 commit
  10. 21 Feb, 2010 1 commit
  11. 17 Feb, 2010 1 commit
  12. 16 Feb, 2010 1 commit
    • Simon Marlow's avatar
      Beef up cmmMiniInline a tiny bit · 6e9501c0
      Simon Marlow authored
      Allow a temporary assignment to be pushed past an assignment to a
      global if the global is not mentioned in the rhs of the assignment we
      are inlining.
      
      This fixes up some bad code.  We should make sure we're doing
      something equivalent in the new backend in due course.
      6e9501c0
  13. 15 Feb, 2010 4 commits
  14. 11 Feb, 2010 1 commit
  15. 10 Feb, 2010 2 commits
    • simonpj@microsoft.com's avatar
      Improve error dump in TcEnv · d259dd70
      simonpj@microsoft.com authored
      d259dd70
    • simonpj@microsoft.com's avatar
      Keep track of explicit kinding in HsTyVarBndr; plus fix Trac #3845 · 836b1e90
      simonpj@microsoft.com authored
      To print HsTypes correctly we should remember whether the Kind on
      a HsTyVarBndr came from type inference, or was put there by the
      user.  See Note [Printing KindedTyVars] in HsTypes.  So instead of
      changing a UserTyVar to a KindedTyVar during kind checking, we
      simply add a PostTcKind to the UserTyVar.
      
      The change was provoked by Trac #3830, although other changes
      mean that #3830 gets a diferent and better error message now.
      So this patch is simply doing the Right Thing for the future.
      
      This patch also fixes Trac #3845, which was caused by a *type splice*
      not remembering the free *term variables* mentioned in it.  Result
      was that we build a 'let' when it should have been 'letrec'.
      Hence a new FreeVars field in HsSpliceTy.
      
      While I was at it, I got rid of HsSpliceTyOut and use a PostTcKind
      on HsSpliceTy instead, just like on the UserTyVar.
      836b1e90
  16. 08 Feb, 2010 1 commit
  17. 10 Feb, 2010 4 commits
    • simonpj@microsoft.com's avatar
      Stop fruitless ANF-ing · 9a977e72
      simonpj@microsoft.com authored
      The simplifier is taking more iterations than it should, because we
      were fruitlessly ANF-ing a top-level declaration of form
      
         x = Ptr "foo"#
      
      to get
       
         x = let v = "foo"# in Ptr v
      
      and then inlining v again.  This patch makes Simplify.makeTrivial 
      top-level aware, so that it doesn't ANF if it's going to be undone.
      9a977e72
    • simonpj@microsoft.com's avatar
      Comments only · 90686adf
      simonpj@microsoft.com authored
      90686adf
    • simonpj@microsoft.com's avatar
      Simplify syntax for quasi-quotation · 26f164e5
      simonpj@microsoft.com authored
      After some discussion we decided to make a quasi-quote look like
      
         [pads| ...blah... |]
      
      rather than
      
         [$pads| ...blah... |]
      
      as before. The new syntax is quieter, although it does not signal
      quite as clearly that there is a splice going on.
      26f164e5
    • simonpj@microsoft.com's avatar
      Several TH/quasiquote changes · 6f8ff0bb
      simonpj@microsoft.com authored
      a) Added quasi-quote forms for
            declarations
            types
         e.g.   f :: [$qq| ... |]
      
      b) Allow Template Haskell pattern quotes (but not splices)
         e.g.  f x = [p| Int -> $x |]
      
      c) Improve pretty-printing for HsPat to remove superfluous
         parens.  (This isn't TH related really, but it affects
         some of the same code.)
      
      
      A consequence of (a) is that when gathering and grouping declarations
      in RnSource.findSplice, we must expand quasiquotes as we do so.
      Otherwise it's all fairly straightforward.  I did a little bit of
      refactoring in TcSplice.
      
      User-manual changes still to come.
      6f8ff0bb