1. 28 Apr, 2016 17 commits
  2. 27 Apr, 2016 1 commit
    • Joachim Breitner's avatar
      Implement the state hack without modifiyng OneShotInfo · a48ebcc4
      Joachim Breitner authored
      Previously, the state hack would be implemented in mkLocalId, by looking
      at the type, and setting the OneShot flag accordingly.
      This patch changes this so that the OneShot flag faithfully represents
      what our various analyses found out, and the State Hack is implemented
      by adjusting the accessors, in particular isOneShotBndr and
      idStateHackOneShotInfo. This makes it easier to understand what's going
      on in the analyses, and de-clutters core dumps and interface files.
      I don’t expect any change in behaviour, at least not in non-fringe
  3. 26 Apr, 2016 13 commits
  4. 24 Apr, 2016 1 commit
  5. 22 Apr, 2016 8 commits
    • niteria's avatar
      Get rid of varSetElemsWellScoped in abstractFloats · 03006f5e
      niteria authored
      It's possible to get rid of this use site in a local way
      and it introduces unneccessary nondeterminism.
      Test Plan: ./validate
      Reviewers: simonmar, goldfire, austin, bgamari, simonpj
      Reviewed By: simonpj
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D2122
      GHC Trac Issues: #4012
    • niteria's avatar
      Make benign non-determinism in pretty-printing more obvious · 0f96686b
      niteria authored
      This change takes us one step closer to being able to remove
      `varSetElemsWellScoped`. The end goal is to make every source
      of non-determinism obvious at the source level, so that when
      we achieve determinism it doesn't get broken accidentally.
      Test Plan: compile GHC
      Reviewers: simonmar, goldfire, simonpj, austin, bgamari
      Reviewed By: simonpj
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D2123
      GHC Trac Issues: #4012
    • niteria's avatar
      Remove unused tyCoVarsOfTelescope · a9076fc2
      niteria authored
      Grepping reveals that it's not used. I suspect that it isn't useful
      Test Plan: grep
      Reviewers: goldfire, austin, bgamari, simonpj
      Reviewed By: simonpj
      Subscribers: thomie, simonmar
      Differential Revision: https://phabricator.haskell.org/D2134
    • niteria's avatar
      Typo: veraibles -> variables · 4221cc28
      niteria authored
    • niteria's avatar
      Fix typos: alpah -> alpha · ed4a2289
      niteria authored
    • Simon Peyton Jones's avatar
      Refactor free tyvars on LHS of rules · 6ad2b42f
      Simon Peyton Jones authored
      A RULE can have unbound meta-tyvars on the LHS.  Consider
        data T a = C
        foo :: T a -> Int
        foo C = 1
        {-# RULES "myrule"  foo C = 1 #-}
      After type checking the LHS becomes (foo alpha (C alpah)) and we do
      not want to zap the unbound meta-tyvar 'alpha' to Any, because that
      limits the applicability of the rule.  Instead, we want to quantify
      over it!
      Previously there was a rather clunky implementation of this
      quantification, buried in the zonker in TcHsSyn (zonkTvCollecting).
      This patch refactors it so that the zonker just turns the meta-tyvar
      into a skolem, and the desugarer adds the quantification.  See DsBinds
      Note [Free tyvars on rule LHS]. As it happened, the desugarer was
      already doing something similar for dictionaries. See DsBinds
      Note [Free dictionaries on rule LHS]
      No change in functionality, but less cruft.
    • Simon Peyton Jones's avatar
      Simplify defaultKindVar and friends · 970ff585
      Simon Peyton Jones authored
      I found zonkQuantifiedTyVar rather complicated, especially the two
      places where we defaulted RuntimeRep variables. This simplifies and
      modularises the story.
      Refactoring only.
    • Simon Peyton Jones's avatar
      Avoid double error on out-of-scope identifier · c2b7a3d9
      Simon Peyton Jones authored
      Trac #11941 demonstrated a case where an out-of-scope error also
      gave rise to a (bogus and confusing) stage restriction message.
      It's caused by the fact that out-of-scope errors do not stop
      renaming, but rather return an "unbound name".  We need to
      detect this in the stage-restriction test to avoid the double
      error.  Easy fix.