1. 02 Mar, 2017 4 commits
  2. 01 Mar, 2017 10 commits
    • David Feuer's avatar
      Upgrade UniqSet to a newtype · cbe569a5
      David Feuer authored
      The fundamental problem with `type UniqSet = UniqFM` is that `UniqSet`
      has a key invariant `UniqFM` does not. For example, `fmap` over
      `UniqSet` will generally produce nonsense.
      * Upgrade `UniqSet` from a type synonym to a newtype.
      * Remove unused and shady `extendVarSet_C` and `addOneToUniqSet_C`.
      * Use cached unique in `tyConsOfType` by replacing
        `unitNameEnv (tyConName tc) tc` with `unitUniqSet tc`.
      Reviewers: austin, hvr, goldfire, simonmar, niteria, bgamari
      Reviewed By: niteria
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D3146
    • David Feuer's avatar
      Change catch# demand signature · 701256df
      David Feuer authored
      * Give `catch#` a lazy demand signature, to make it more honest.
      * Make `catchException` and `catchAny` force their arguments so they
      actually behave as advertised.
      * Use `catch` rather than `catchException` in `forkIO`, `forkOn`, and
      `forkOS` to avoid losing exceptions.
      Fixes #13330
      Reviewers: rwbarton, simonpj, simonmar, bgamari, hvr, austin
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D3244
    • Ben Gamari's avatar
      rts: Fix build · b86d226f
      Ben Gamari authored
      I evidently neglected to consider that validate doesn't build profiled
      ways. Arg.
    • David Feuer's avatar
      Update containers again · 916658d6
      David Feuer authored
      submodule update
      Get the version with `COMPLETE` pragmas for `Data.Sequence`.
      Reviewers: austin, bgamari
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D3249
    • Simon Peyton Jones's avatar
      Move isJoinId, isJoinId_maybe to Id · 2ab6ce78
      Simon Peyton Jones authored
      This is just a refactoring, moving these two functions where
      they belong.
      The reason they were there was because of the use of isJoinId_maybe
      in the OutputableBndr instance of TaggedBndr, which was in CoreSyn.
      I moved it to PprCore, to join the OutputableBndr instance for
      Var.  That makes more sense anyway.
      Reviewers: austin, bgamari
      Reviewed By: bgamari
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D3207
    • Simon Peyton Jones's avatar
      Mark non-recursive join lambdas as one-shot · 777b7707
      Simon Peyton Jones authored
      When we have
        join j x y = rhs in ...
      we know that the lambdas for 'x' and 'y' are one-shot.
      Let's mark them as such!
      This doesn't fix a specific bug, but it feels right to me.
      Reviewers: austin, bgamari
      Reviewed By: bgamari
      Subscribers: lukemaurer, thomie
      Differential Revision: https://phabricator.haskell.org/D3196
    • Simon Peyton Jones's avatar
      Improve SetLevels for join points · 6eb52cfc
      Simon Peyton Jones authored
      C.f. Trac #13286, #13236
      * Never destroy a join point unless it goes to top level
        See Note [Floating join point bindings]
      * Never float a MFE if it has a free join variable
        Note [Free join points]
      * Stop treating nullary join points specially
      * Enforce the invariant that le_join_ceil >= le_ctxt_lvl
        (Needs more thought...)
      Reviewers: austin, bgamari
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D3199
    • Simon Peyton Jones's avatar
      Improve pretty-printing of types · 871b63e4
      Simon Peyton Jones authored
      When doing debug-printing it's really important that the free vars
      of a type are printed with their uniques.  The IfaceTcTyVar thing
      was a stab in that direction, but it only worked for TcTyVars, not
      This patch does it properly, by keeping track of the free vars of the
      type when translating Type -> IfaceType, and passing that down through
      toIfaceTypeX.  Then when we find a variable, look in that set, and
      translate it to IfaceFreeTyVar if so.  (I renamed IfaceTcTyVar to
      Fiddly but not difficult.
      Reviewers: austin, goldfire, bgamari
      Reviewed By: bgamari
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D3201
    • Simon Peyton Jones's avatar
      Add VarSet.anyDVarSet, allDVarSet · cdf6b695
      Simon Peyton Jones authored
      I need these in a later commit.
      Also rename
        varSetAny  -->  anyVarSet
        varSetAll  -->  allVarSet
      for consistency with other functions; eg filterVarSet
      Reviewers: austin, goldfire, bgamari
      Subscribers: niteria, thomie
      Differential Revision: https://phabricator.haskell.org/D3202
    • David Feuer's avatar
      Fix redundant import in CSE · 4f10a229
      David Feuer authored
  3. 28 Feb, 2017 23 commits
  4. 27 Feb, 2017 3 commits