1. 12 May, 2017 7 commits
  2. 11 May, 2017 26 commits
  3. 10 May, 2017 4 commits
    • Ben Gamari's avatar
    • Simon Marlow's avatar
      Fix a performance bug in GhcMake.downsweep · 1893ba12
      Simon Marlow authored
      Every time we encountered a non-home module during the downsweep, we
      were removing it from the finder cache.  That meant we were searching
      the filesystem for every import, rather than once per downsweep.  The
      fix is just to flush the finder cache before the downsweep, and
      repopulate it for home modules that haven't changed.
      Speeds up downsweep by about 25% on a large example I have.
      Test Plan: Harbourmaster
      Reviewers: bgamari, niteria, austin, erikd
      Reviewed By: bgamari, niteria
      Subscribers: rwbarton, thomie
      Differential Revision: https://phabricator.haskell.org/D3554
    • niteria's avatar
      Efficient membership for home modules · 26f509a9
      niteria authored
      This changes the linear lookup in a list to an efficient
      lookup in an IntMap. The linear lookup effectively made
      the algorithm quadratic, which for a test case that I have
      (5000 modules) introduced significant slowdown.
      I ran 3 experiments to estimate the impact of this:
      "No-op", profiled, just `:load`: P146, `186s`
      "before", profiled, `:load` followed by 10x `:r`: P147, `315s`
      "after", profiled, `:load` followed by 10x `:r`: P148, `250s`
      Going by the math of `(250-186)/(315-186) = 50%` this is a 2x improvement
      on `:r`.
      Test Plan: ./validate
      Reviewers: simonmar, austin, bgamari
      Reviewed By: simonmar
      Subscribers: rwbarton, thomie
      Differential Revision: https://phabricator.haskell.org/D3562
    • Gabor Greif's avatar
      Typos [ci skip] · 22a03e72
      Gabor Greif authored
  4. 09 May, 2017 3 commits