1. 05 Feb, 2007 4 commits
    • simonpj@microsoft.com's avatar
      Establish the CoreSyn let/app invariant · 7b01315d
      simonpj@microsoft.com authored
      This patch clears up a long-standing wart.   For some time it's been the
      case that 
      	the RHS of a non-recursive let can be unlifed iff 
      	the RHS is ok-for-speculation
      
      This patch extends the invariant to the argument of an App, and 
      establishes it by the smart constructors mkDsApp, mkDsApps in the desugarer.
      
      Once established, it should be maintained by the optimiser.
      
      This tides up some awkward cases, notably in exprIsHNF, and I think it
      fixes a outright strictness bug in Simplify.prepareRhs.
      7b01315d
    • simonpj@microsoft.com's avatar
      Improve simplification of coercions · 77241a03
      simonpj@microsoft.com authored
      At the moment GHC really does very little simplification of coercions.
      This patch improves matters, but it's still not great, especially when
      you have chains linked together with 'trans'. 
      
      I'm also concerned that I have not yet implemented the 'leftc' and 'rightc'
      coercions we added to the paper. 
      
      But at least things are better than they were.  In particular
      	g `trans` sym g
      now cancels to give the identity.
      
      77241a03
    • Simon Marlow's avatar
      Move #ifdef __GLASGOW_HASKELL__ < 604 to cover the CSIDL definitions too · a437c9ad
      Simon Marlow authored
      Fixes bug exposed by compiling base w/ -fasm on Windows
      a437c9ad
    • Simon Marlow's avatar
      Make binary-dist tarballs automatically, and add support for uploading · 14df4276
      Simon Marlow authored
      Moving functionality that was previously in the nightly build scripts
      into the top-level Makefile, so it's easier to use from BuildBot.
      14df4276
  2. 22 Jan, 2007 1 commit
    • Simon Marlow's avatar
      Semi-tagging optimisation · a2d78ebe
      Simon Marlow authored
      In the generated code for case-of-variable, test the tag of the
      scrutinee closure and only enter if it is unevaluated.  Also turn
      *off* vectored returns.
      a2d78ebe
  3. 05 Feb, 2007 2 commits
  4. 22 Jan, 2007 2 commits
  5. 19 Jan, 2007 4 commits
  6. 21 Dec, 2006 2 commits
  7. 04 Feb, 2007 3 commits
  8. 02 Feb, 2007 1 commit
  9. 04 Feb, 2007 3 commits
  10. 03 Feb, 2007 1 commit
  11. 02 Feb, 2007 3 commits
  12. 31 Jan, 2007 1 commit
  13. 02 Feb, 2007 6 commits
  14. 01 Feb, 2007 5 commits
  15. 31 Jan, 2007 2 commits