1. 09 Mar, 2013 7 commits
  2. 08 Mar, 2013 3 commits
  3. 07 Mar, 2013 2 commits
  4. 06 Mar, 2013 1 commit
  5. 05 Mar, 2013 2 commits
    • Simon Marlow's avatar
      comments · 2b32e867
      Simon Marlow authored
    • Simon Peyton Jones's avatar
      Ensure that isStrictDmd is False for Absent (fixes Trac #7737) · a37a7f7b
      Simon Peyton Jones authored
      The demand <HyperStr, Absent> for a let-bound value is bit
      strange; it means that the context will diverge, but this
      argument isn't used. We don't want to use call-by-value here,
      even though it's semantically sound if all bottoms mean
      the same.
      The fix is easy; just make "isStrictDmd" a bit more perspicuous.
      See Note [Strict demands] in Demand.lhs
  6. 04 Mar, 2013 1 commit
    • Simon Peyton Jones's avatar
      Rearrange the typechecking of arrows, especially arrow "forms" · c3ad38d7
      Simon Peyton Jones authored
      The typechecking of arrow forms (in GHC 7.6) is known to be bogus, as
      described in Trac #5609, because it marches down tuple types that may
      not yet be fully worked out, depending on when constraint solving
      happens.  Moreover, coercions are generated and simply discarded.  The
      fact that it works at all is a miracle.
      This refactoring is based on a conversation with Ross, where we
      rearranged the typing of the argument stack, so that the arrows
      have the form
         a (env, (arg1, (arg2, ...(argn, ())))) res
      rather than
         a (arg1, (arg2, ...(argn, env))) res
      as it was before.
      This is vastly simpler to typecheck; just look at the beautiful,
      simple type checking of arrow forms now!
      We need a new HsCmdCast to capture the coercions generated from
      the argument stack.
      This leaves us in a better position to tackle the open arrow tickets
       * Trac #5777 still fails.  (I was hoping this patch would cure it.)
       * Trac #5609 is too complicated for me to grok.  Ross?
       * Trac #344
       * Trac #5333
  7. 03 Mar, 2013 8 commits
  8. 02 Mar, 2013 7 commits
  9. 01 Mar, 2013 3 commits
  10. 28 Feb, 2013 6 commits