1. 28 May, 2008 1 commit
    • Simon Marlow's avatar
      Use MD5 checksums for recompilation checking (fixes #1372, #1959) · 526c3af1
      Simon Marlow authored
      This is a much more robust way to do recompilation checking.  The idea
      is to create a fingerprint of the ABI of an interface, and track
      dependencies by recording the fingerprints of ABIs that a module
      depends on.  If any of those ABIs have changed, then we need to
      recompile.
      
      In bug #1372 we weren't recording dependencies on package modules,
      this patch fixes that by recording fingerprints of package modules
      that we depend on.  Within a package there is still fine-grained
      recompilation avoidance as before.
      
      We currently use MD5 for fingerprints, being a good compromise between
      efficiency and security.  We're not worried about attackers, but we
      are worried about accidental collisions.
      
      All the MD5 sums do make interface files a bit bigger, but compile
      times on the whole are about the same as before.  Recompilation
      avoidance should be a bit more accurate than in 6.8.2 due to fixing
      #1959, especially when using -O.
      526c3af1
  2. 23 May, 2008 1 commit
  3. 27 May, 2008 1 commit
  4. 21 May, 2008 4 commits
  5. 20 May, 2008 2 commits
  6. 15 May, 2008 1 commit
    • simonpj@microsoft.com's avatar
      Tuples cannot contain unboxed types · 48565ca8
      simonpj@microsoft.com authored
      This bug allowed, for example
      
        f = let x = ( 1#, 'x' ) in x
      
      which is ill-typed because you can't put an unboxed value in a tuple.
      Core Lint fails on this program.
      
      The patch makes the program be rejcted up-front.
      
      48565ca8
  7. 20 May, 2008 1 commit
  8. 19 May, 2008 3 commits
  9. 20 May, 2008 1 commit
  10. 19 May, 2008 1 commit
  11. 20 May, 2008 3 commits
  12. 18 May, 2008 2 commits
  13. 16 May, 2008 1 commit
  14. 15 May, 2008 2 commits
  15. 16 May, 2008 1 commit
    • simonpj@microsoft.com's avatar
      Improve the treatment of 'seq' (Trac #2273) · 4e36a8b1
      simonpj@microsoft.com authored
      Trac #2273 showed a case in which 'seq' didn't cure the space leak
      it was supposed to.  This patch does two things to help
      
      a) It removes a now-redundant special case in Simplify, which
         switched off the case-binder-swap in the early stages.  This
         isn't necessary any more because FloatOut has improved since
         the Simplify code was written.  And switching off the binder-swap
         is harmful for seq.
      
      However fix (a) is a bit fragile, so I did (b) too:
      
      b) Desugar 'seq' specially.  See Note [Desugaring seq (2)] in DsUtils
         This isn't very robust either, since it's defeated by abstraction, 
         but that's not something GHC can fix; the programmer should use
         a let! instead.
      4e36a8b1
  16. 03 May, 2008 1 commit
  17. 14 May, 2008 2 commits
  18. 13 May, 2008 4 commits
  19. 12 May, 2008 2 commits
  20. 11 May, 2008 1 commit
  21. 10 May, 2008 3 commits
  22. 06 May, 2008 2 commits