1. 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
  2. 26 Feb, 2010 4 commits
  3. 25 Feb, 2010 1 commit
  4. 24 Feb, 2010 1 commit
  5. 22 Feb, 2010 1 commit
  6. 23 Feb, 2010 4 commits
  7. 22 Feb, 2010 1 commit
  8. 21 Feb, 2010 2 commits
  9. 20 Feb, 2010 2 commits
  10. 19 Feb, 2010 1 commit
  11. 18 Feb, 2010 2 commits
  12. 17 Feb, 2010 3 commits
  13. 16 Feb, 2010 4 commits
    • 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
    • Simon Marlow's avatar
      Write the binary cache file atomically · cd81cd88
      Simon Marlow authored
      Should fix an occasional build error of the form 
       ghc-pkg: too few bytes. Failed reading at byte position 8
      cd81cd88
    • Simon Marlow's avatar
      32578fc5
    • Simon Marlow's avatar
      Fix a bug that can lead to noDuplicate# not working sometimes. · c44aaa10
      Simon Marlow authored
      The symptom is that under some rare conditions when running in
      parallel, an unsafePerformIO or unsafeInterleaveIO computation might
      be duplicated, so e.g. lazy I/O might give the wrong answer (the
      stream might appear to have duplicate parts or parts missing).
      
      I have a program that demonstrates it -N3 or more, some lazy I/O, and
      a lot of shared mutable state.  See the comment with stg_noDuplicatezh
      in PrimOps.cmm that explains the problem and the fix.  This took me
      about a day to find :-(
      c44aaa10
  14. 15 Feb, 2010 5 commits
  15. 14 Feb, 2010 1 commit
  16. 11 Feb, 2010 1 commit
  17. 10 Feb, 2010 3 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
    • simonpj@microsoft.com's avatar
  18. 08 Feb, 2010 1 commit
  19. 10 Feb, 2010 2 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