1. 20 Nov, 2009 4 commits
  2. 19 Nov, 2009 4 commits
  3. 12 Nov, 2009 1 commit
  4. 19 Nov, 2009 5 commits
    • simonpj@microsoft.com's avatar
      Remove the (very) old strictness analyser · 2662dbc5
      simonpj@microsoft.com authored
      I finally got tired of the #ifdef OLD_STRICTNESS stuff.  I had been
      keeping it around in the hope of doing old-to-new comparisions, but
      have failed to do so for many years, so I don't think it's going to
      happen.  This patch deletes the clutter.
      2662dbc5
    • simonpj@microsoft.com's avatar
      Make INLINE warning more precise · c8ef1c4a
      simonpj@microsoft.com authored
      c8ef1c4a
    • simonpj@microsoft.com's avatar
      Implement -fexpose-all-unfoldings, and fix a non-termination bug · 6a944ae7
      simonpj@microsoft.com authored
      The -fexpose-all-unfoldings flag arranges to put unfoldings for *everything*
      in the interface file.  Of course,  this makes the file a lot bigger, but
      it also makes it complete, and that's great for supercompilation; or indeed
      any whole-program work.
      
      Consequences:
        * Interface files need to record loop-breaker-hood.  (Previously,
          loop breakers were never exposed, so that info wasn't necessary.)
          Hence a small interface file format change. 
      
        * When inlining, must check loop-breaker-hood. (Previously, loop
          breakers didn't have an unfolding at all, so no need to check.)
      
        * Ditto in exprIsConApp_maybe.  Roman actually tripped this bug, 
          because a DFun, which had an unfolding, was also a loop breaker
      
        * TidyPgm.tidyIdInfo must be careful to preserve loop-breaker-hood
      
      So Id.idUnfolding checks for loop-breaker-hood and returns NoUnfolding
      if so. When you want the unfolding regardless of loop-breaker-hood, 
      use Id.realIdUnfolding.
      
      I have not documented the flag yet, because it's experimental.  Nor
      have I tested it thoroughly.  But with the flag off (the normal case)
      everything should work.
      6a944ae7
    • simonpj@microsoft.com's avatar
      Re-implement the binder-swap stuff in OccurAnal · c93e8323
      simonpj@microsoft.com authored
      This is a pretty big patch, but it has a very local effect.
      It affects only the binder-swap mechanism in OccurAnal, which
      was not working well becuase it's more subtle than I'd realised
      (See Note [getProxies is subtle]).  I think this does a much
      better job.
      c93e8323
    • simonpj@microsoft.com's avatar
      Try harder not to make DFuns into loop breakers · 522c1e96
      simonpj@microsoft.com authored
      See Note [DFuns should not be loop breakers]
      522c1e96
  5. 17 Nov, 2009 1 commit
  6. 19 Nov, 2009 7 commits
  7. 18 Nov, 2009 5 commits
  8. 17 Nov, 2009 3 commits
  9. 14 Nov, 2009 7 commits
  10. 11 Nov, 2009 1 commit
  11. 10 Nov, 2009 1 commit
  12. 06 Nov, 2009 1 commit
    • Ben.Lippmeier@anu.edu.au's avatar
      Break recursive imports between the RTS and base library on Windows. · 02d8f553
      Ben.Lippmeier@anu.edu.au authored
      The file rts/win32/libHSbase.def contains a list of all the 
      symbols from the base library that the RTS needs. 
      
      When building the RTS into a DLL on Windows, we want to link the DLL
      for the RTS before we link the DLL for the base library. We use 
      libHSbase.def to make the "import library" libHSbase.so.a, which 
      contains stubs for each of the symbols from the base library that
      the RTS needs.
      02d8f553