1. 03 Oct, 2017 6 commits
    • Simon Peyton Jones's avatar
      Fix nasty bug in w/w for absence analysis · dbbee1ba
      Simon Peyton Jones authored
      This dark corner was exposed by Trac #14285.  It involves the
      interaction between absence analysis and INLINABLE pragmas.
      There is a full explanation in Note [aBSENT_ERROR_ID] in MkCore,
      which you can read there.  The changes in this patch are
      * Make exprIsHNF return True for absentError, treating
        absentError like an honorary data constructor.
      * Make absentError /not/ be diverging, unlike other error Ids.
      This is all a bit horrible.
      * While doing this I found that exprOkForSpeculation didn't
        have a case for value lambdas so I added one.  It's not
        really called on lifted types much, but it seems like the
        right thing
    • Simon Peyton Jones's avatar
      Make GHC.IO.Buffer.summaryBuffer strict · b1e0c65a
      Simon Peyton Jones authored
      I came across this when debugging something else.  Making it strict
      improves the code slightly without affecting behaviour.
    • Simon Peyton Jones's avatar
      Fix bug in the short-cut solver · a8fde183
      Simon Peyton Jones authored
      Trac #13943 showed that the relatively-new short-cut solver
      for class constraints (aka -fsolve-constant-dicts) was wrong.
      In particular, see "Type families" under Note [Shortcut solving]
      in TcInteract.
      The short-cut solver recursively solves sub-goals, but it doesn't
      flatten type-family applications, and as a result it erroneously
      thought that C (F a) cannot possibly match (C 0), which is
      simply untrue.  That led to an inifinte loop in the short-cut
      The significant change is the one line
      +                 , all isTyFamFree preds  -- See "Type families" in
      +                                          -- Note [Shortcut solving]
      but, as ever, I do some other refactoring.  (E.g. I changed the
      name of the function to shortCutSolver rather than the more
      generic trySolveFromInstance.)
      I also made the short-cut solver respect the solver-depth limit,
      so that if this happens again it won't just produce an infinite
      A bit of other refactoring, notably moving isTyFamFree
      from TcValidity to TcType
    • Simon Peyton Jones's avatar
      Comments only · a1fc7ce3
      Simon Peyton Jones authored
    • Moritz Angermann's avatar
      Adds x86 NONE relocation type · a4ee2897
      Moritz Angermann authored
      As reported by Alex Lang, R_X86_64_NONE relocations
      appear in per-package object files, not per-module object
      files. This diff adds _NONE relocations for x86.
      Reviewers: bgamari, geekosaur, austin, erikd, simonmar
      Reviewed By: geekosaur
      Subscribers: rwbarton, thomie
      Differential Revision: https://phabricator.haskell.org/D4062
    • Moritz Angermann's avatar
      No libffi docs · d0c5d8de
      Moritz Angermann authored
      building libffi docs with our intree-libffi seems
      rather pointless.
      Reviewers: bgamari, austin
      Reviewed By: bgamari
      Subscribers: rwbarton, thomie
      Differential Revision: https://phabricator.haskell.org/D4054
  2. 02 Oct, 2017 8 commits
  3. 30 Sep, 2017 5 commits
  4. 29 Sep, 2017 2 commits
  5. 28 Sep, 2017 1 commit
    • Simon Marlow's avatar
      mkDataConRep: fix bug in strictness signature (#14290) · 5935acdb
      Simon Marlow authored
      The strictness signature for a data con wrapper wasn't including any
      dictionary arguments, which meant that bangs on the fields of a
      constructor with an existential context would be moved to the wrong
      fields.  See T14290 for an example.
      Test Plan:
      * New test T14290
      * validate
      Reviewers: simonpj, niteria, austin, bgamari, erikd
      Reviewed By: simonpj, bgamari
      Subscribers: rwbarton, thomie
      GHC Trac Issues: #14290
      Differential Revision: https://phabricator.haskell.org/D4040
  6. 27 Sep, 2017 8 commits
  7. 26 Sep, 2017 10 commits