1. 26 Jan, 2016 6 commits
    • Herbert Valerio Riedel's avatar
      Missed plural renaming in user's guide · 34c9a4e4
      Herbert Valerio Riedel authored
      Follow-up to 132c2089
      [skip ci]
    • Simon Peyton Jones's avatar
      Fix two cloning-related bugs · 016a0bd1
      Simon Peyton Jones authored
      Crikey!  Not just one but two bugs in type variable cloning,
      both dating from the days before PolyKinds.  Both were shown up
      by Trac #11330.
      1. In SetLevels, when floating a case expression we must clone its
         binders, *and* do so in a telescope-aware way, because the
         constructor may bind a kind variable that appears in the kind
         of a type variable.
         Instead of doing this (wrongly) by steam, call CoreSubst.cloneBndrs.
         I added Notes and did other refactoring at the same time.
      2. It turned out that CoreSubst.cloneBndrs calls TyCoRep.cloneTyVarBndr,
         and that too was bogus!  It didn't substitute in the kind of the
         TyVar being cloned.  There was even a comment to say "variables can't
         appear in kinds".  Thta hasn't been true for a long time now.
      Easily fixed.
      Interestingly, I then found that test
      was emitting a new inexhaustive-pattern-match warning.  Sure enough
      it was valid!  So the lack of cloning in cloneTyVarBndr really was
      causing an observable bug; just one that we had not observed.
    • Simon Peyton Jones's avatar
      Kill off zipTopTCvSubst in favour of zipOpenTCvSubst · 1c6d70c2
      Simon Peyton Jones authored
      As Bartosz has discovered, the invariants for substitutions were
      wrong, and in particular the "mkTop...Subst" and "zipTop..Subst"
      functions were building substitutions that didn't obey even the
      old invariants.
      This patch kills of the bogus zipTopTCvSubst in favour of the
      more robust zipOpenTCvSubst.
      I tripped over this because my upcoming patch (concerning SetLevels,
      Trac #11330) triggered an ASSERT failure in the substitution
      well-formedness assertion in TyCoRep.
    • Simon Peyton Jones's avatar
      Add "ticks-exhausted" comment · 47b3f588
      Simon Peyton Jones authored
      This code deliberately builds a subtle negative-occurrence-of-data-type
      example, described in the paper, so with -O it'll give "simplifier
      ticks exhausted".
      This patch just adds a comment to explain.
    • Simon Peyton Jones's avatar
      White space only · cf788a53
      Simon Peyton Jones authored
    • Simon Peyton Jones's avatar
      Less verbose output for the in-scope set · 632f020b
      Simon Peyton Jones authored
      With -dppr-debug the output for the (ofen-large) InScope set
      was overwhelming.  This makes it smaller.
      Only affects debugging.
  2. 25 Jan, 2016 13 commits
  3. 24 Jan, 2016 5 commits
  4. 23 Jan, 2016 11 commits
  5. 22 Jan, 2016 5 commits
    • Ben Gamari's avatar
      rts: Disable tick timer unless really needed · b01288d5
      Ben Gamari authored
      Trac #9105 notes significant CPU usage by an otherwise idle process when
      compiled with profiling. The reason for this is that we keep the tick
      timer active in the profiling RTS even if profiling wasn't requested at
      If the user requests any sort of profiling then we need to keep the
      timer active to ensure that samples are collected.
      Test Plan: Validate, check CPU usage, ensure profiling still works
      Reviewers: simonmar, austin
      Reviewed By: simonmar, austin
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D1822
      GHC Trac Issues: #9105
    • Jonas Scholl's avatar
      Do not count void arguments when considering a function for loopification. · 4d51bfc8
      Jonas Scholl authored
      This fixes #11372 by omitting arguments with a void-type when checking
      whether a self-recursive tail call can be optimized to a local jump.
      Previously, a function taking a real argument and a State# token
      would report an arity of 1 in the SelfLoopInfo in getCallMethod,
      but a self-recursive call would apply it to 2 arguments, one of them
      being the State# token, thus no local jump would be generated.
      As the State# token is not represented by anything at runtime, we can
      ignore it and thus trigger the loopification optimization.
      Test Plan: ./validate
      Reviewers: austin, bgamari, simonmar
      Reviewed By: bgamari
      Subscribers: simonmar, thomie
      Differential Revision: https://phabricator.haskell.org/D1767
      GHC Trac Issues: #11372
    • Eric Seidel's avatar
      Fix a formatting error in the user's guide · 6e5f8285
      Eric Seidel authored
      seems to confuse ReST into producing an extended code-span
      fixes it, but there may be a better solution
      Test Plan: build the user's guide and inspect the last paragraph of
      " Implicit CallStacks"
      Reviewers: bgamari
      Reviewed By: bgamari
      Projects: #ghc
      Differential Revision: https://phabricator.haskell.org/D1798
    • rwbarton's avatar
      Mark some ghci tests as req_interp · 65881c01
      rwbarton authored
      Test Plan: validate
      Reviewers: bgamari, austin
      Reviewed By: bgamari, austin
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D1819
    • rwbarton's avatar
      Don't print "Loaded GHCi configuration" message in ghc -e (#11478) · 9048c3df
      rwbarton authored
      Also don't print it if the user specifically requested
      non-verbose output with -v0.
      Since this means there is no longer any test that checks
      for the message, add such a test.
      Test Plan: validate
      Reviewers: austin, bgamari
      Reviewed By: bgamari
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D1817
      GHC Trac Issues: #11478