1. 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
      5935acdb
  2. 04 Apr, 2017 1 commit
    • David Feuer's avatar
      Revert "Make raiseIO# produce topRes" · e83af07e
      David Feuer authored
      This reverts commit da4687f6.
      
      It's not entirely trivial to clean up the dead code this patch
      introduced. In particular, when we see
      
      ```
      case raiseIO# m s of
        s' -> e
      ```
      
      we want to know that `e` is dead. For scrutinees that are properly
      bottom (which we don't want to consider `raiseIO# m s` to be, this
      is handled by rewriting `bot` to `case bot of {}`. But if we do
      that for `raiseIO#`, we end up with
      
      ```
      case raiseIO# m s of {}
      ```
      
      which looks a lot like bottom and could confuse demand analysis.
      I think we need to wait with this change until we have a more
      complete story.
      
      Reviewers: austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: rwbarton, thomie
      
      Differential Revision: https://phabricator.haskell.org/D3413
      e83af07e
  3. 09 Mar, 2017 1 commit
  4. 06 Mar, 2017 1 commit
  5. 26 Feb, 2017 1 commit
    • rwbarton's avatar
      tests: remove extra_files.py (#12223) · 3415bcaa
      rwbarton authored
      The script I used is included as testsuite/driver/kill_extra_files.py,
      though at this point it is for mostly historical interest.
      
      Some of the tests in libraries/hpc relied on extra_files.py, so this
      commit includes an update to that submodule.
      
      One test in libraries/process also relies on extra_files.py, but we
      cannot update that submodule so easily, so for now we special-case it
      in the test driver.
      3415bcaa
  6. 25 Aug, 2016 2 commits
    • Joachim Breitner's avatar
      DmdAnal: Testcase about splitFVs and dmdFix abortion · d6fd2e37
      Joachim Breitner authored
      Any variable with useful information (strict or used-once) will not be
      included in lazy_fv (according to splitFVs). If we now also remove them
      from the strictness signatures, their uses are not recorded anywhere –
      and then probably considered absent.
      d6fd2e37
    • Joachim Breitner's avatar
      DmdAnal: Add a final, safe iteration · 8d92b88d
      Joachim Breitner authored
      this fixes #12368.
      
      It also refactors dmdFix a bit, removes some redundancies (such as
      passing around an strictness signature right next to an id, when that id
      is guaranteed to have been annotated with that strictness signature).
      
      Note that when fixed-point iteration does not terminate, we
      conservatively delete their strictness signatures (set them to nopSig).
      But this loses the information on how its strict free variables are
      used!
      
      Lazily used variables already escape via lazy_fvs. We ensure that in the
      case of an aborted fixed-point iteration, also the strict variables are
      put there (with a conservative demand of topDmd).
      
      Differential Revision: https://phabricator.haskell.org/D2392
      8d92b88d
  7. 07 Jul, 2016 1 commit
  8. 20 Jun, 2016 1 commit
  9. 11 Mar, 2016 1 commit
  10. 25 Feb, 2016 1 commit
  11. 13 Nov, 2015 1 commit
    • Simon Marlow's avatar
      Make 'error' include the CCS call stack when profiled · 8988be85
      Simon Marlow authored
      Summary:
      The idea here is that this gives a more detailed stack trace in two
      cases:
      
      1. With `-prof` and `-fprof-auto`
      2. In GHCi (see #11047)
      
      Example, with an error inserted in nofib/shootout/binary-trees:
      
      ```
      $ ./Main 3
      Main: z
      CallStack (from ImplicitParams):
        error, called at Main.hs:67:29 in main:Main
      CallStack (from -prof):
        Main.check' (Main.hs:(67,1)-(68,82))
        Main.check (Main.hs:63:1-21)
        Main.stretch (Main.hs:32:35-57)
        Main.main.c (Main.hs:32:9-57)
        Main.main (Main.hs:(27,1)-(43,42))
        Main.CAF (<entire-module>)
      ```
      
      This doesn't quite obsolete +RTS -xc, which also attempts to display
      more information in the case when the error is in a CAF, but I'm
      exploring other solutions to that.
      
      Includes submodule updates.
      
      Test Plan: validate
      
      Reviewers: simonpj, ezyang, gridaphobe, bgamari, hvr, austin
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1426
      8988be85
  12. 12 Nov, 2015 1 commit
  13. 22 Sep, 2015 1 commit
  14. 14 Apr, 2015 1 commit
    • Simon Peyton Jones's avatar
      Zap usage info in CSE (Trac #10218) · d261d4cb
      Simon Peyton Jones authored
      Trac #10218 reports a subtle bug that turned out to be:
      
      - CSE invalidated the usage information computed
        by earlier demand analysis, by increasing sharing
      
      - that made a single-entry thunk into a multi-entry thunk
      
      - and with -feager-blackholing, that led to <<loop>>
      
      The patch fixes it by making the CSE pass zap usage information for
      let-bound identifiers.   It can be restored by -flate-dmd-anal.
      
      (But making -flate-dmd-anal the default needs some careful work;
      see Trac #7782.)
      d261d4cb
  15. 07 Apr, 2015 2 commits
  16. 01 Jul, 2014 1 commit
    • Simon Peyton Jones's avatar
      Fix demand analyser for unboxed types · d6ee82b2
      Simon Peyton Jones authored
      This is a tricky case exposed by Trac #9254.  I'm surprised it hasn't
      shown up before, because it's happens when you use unsafePerformIO in
      the right way.
      
      Anyway, fixed now.  See Note [Analysing with absent demand]
      in Demand.lhs
      d6ee82b2
  17. 28 Jun, 2014 1 commit
    • Herbert Valerio Riedel's avatar
      Simplify .gitignore files · 767b9ddf
      Herbert Valerio Riedel authored
      It's a bit confusing to have .gitignore files spread all over the
      filesystem. This commit tries to consolidate those into one .gitignore
      file per component. Moreover, we try to describe files to be ignored which
      happen to have a common identifying pattern by glob patterns.
      Signed-off-by: Herbert Valerio Riedel's avatarHerbert Valerio Riedel <hvr@gnu.org>
      767b9ddf
  18. 30 May, 2014 1 commit
  19. 24 Oct, 2013 1 commit
  20. 13 Feb, 2013 1 commit
  21. 20 Jul, 2011 1 commit