1. 29 Apr, 2014 1 commit
    • Simon Marlow's avatar
      Fix scavenge_stack crash (#9045) · ab8bb489
      Simon Marlow authored
      The new stg_gc_prim_p_ll stack frame was missing an info table.  This
      is a regression since 7.6, because this stuff was part of a cleanup
      that happened in 7.7.
  2. 28 Apr, 2014 8 commits
  3. 25 Apr, 2014 1 commit
    • Herbert Valerio Riedel's avatar
      Drop `template-haskell`'s build-dep on `containers` · 07388af8
      Herbert Valerio Riedel authored
      This is an attempt to address
      by replicating the less than 100 lines of code actually used from the
      containers package into an internal non-exposed `template-haskell` module.
      Moreover, `template-haskell` does not expose the `Map` type, so this change
      should have no visible effect on the public API.
      It may turn out that `Data.Map` is not necessary and that even a simple
      list-based associative list (`Prelude.lookup`) may suffice. However, in
      order to avoid any regressions, this commit takes the safe route and just
      clones `Data.Map` for now.
      Signed-off-by: Herbert Valerio Riedel's avatarHerbert Valerio Riedel <hvr@gnu.org>
  4. 24 Apr, 2014 3 commits
    • Gabor Greif's avatar
      Some typos in comments · 4ceb5dec
      Gabor Greif authored
    • Simon Peyton Jones's avatar
      Don't eta-expand PAPs (fixes Trac #9020) · 79e46aea
      Simon Peyton Jones authored
      See Note [Do not eta-expand PAPs] in SimplUtils.  This has a tremendously
      good effect on compile times for some simple benchmarks.
      The test is now where it belongs, in perf/compiler/T9020 (instead of simpl015).
      I did a nofib run and got essentially zero change except for cacheprof which
      gets 4% more allocation.  I investigated.  Turns out that we have
          instance PP Reg where
             pp ppm ST_0 = "%st"
             pp ppm ST_1 = "%st(1)"
             pp ppm ST_2 = "%st(2)"
             pp ppm ST_3 = "%st(3)"
             pp ppm ST_4 = "%st(4)"
             pp ppm ST_5 = "%st(5)"
             pp ppm ST_6 = "%st(6)"
             pp ppm ST_7 = "%st(7)"
             pp ppm r    = "%" ++ map toLower (show r)
      That (map toLower (show r) does a lot of map/toLowers.  But if we inline show
      we get something like
             pp ppm ST_0 = "%st"
             pp ppm ST_1 = "%st(1)"
             pp ppm ST_2 = "%st(2)"
             pp ppm ST_3 = "%st(3)"
             pp ppm ST_4 = "%st(4)"
             pp ppm ST_5 = "%st(5)"
             pp ppm ST_6 = "%st(6)"
             pp ppm ST_7 = "%st(7)"
             pp ppm EAX  = map toLower (show EAX)
             pp ppm EBX  = map toLower (show EBX)
      and all those map/toLower calls can now be floated to top level.
      This gives a 4% decrease in allocation.  But it depends on inlining
      a pretty big 'show' function.
      With this new patch we get slightly better eta-expansion, which makes
      a function look slightly bigger, which just stops it being inlined.
      The previous behaviour was luck, so I'm not going to worry about
      losing it.
      I've added some notes to nofib/Simon-nofib-notes
    • Simon Peyton Jones's avatar
      Be less verbose when printing Names when we don't know what's in scope · 134b7223
      Simon Peyton Jones authored
      Previously we always printed qualified names, but that makes a lot of debug or
      warning output very verbose. So now we only print qualified names with -dppr-debug.
      Civilised output (from pukka error messages, with the environment available) is
  5. 20 Apr, 2014 2 commits
  6. 19 Apr, 2014 2 commits
  7. 18 Apr, 2014 1 commit
  8. 17 Apr, 2014 2 commits
  9. 14 Apr, 2014 1 commit
  10. 12 Apr, 2014 2 commits
  11. 11 Apr, 2014 1 commit
  12. 10 Apr, 2014 2 commits
  13. 09 Apr, 2014 2 commits
  14. 08 Apr, 2014 3 commits
  15. 07 Apr, 2014 3 commits
  16. 06 Apr, 2014 1 commit
  17. 05 Apr, 2014 2 commits
  18. 04 Apr, 2014 1 commit
    • Simon Peyton Jones's avatar
      Simplify and tidy up the handling of tuple names · 750271e6
      Simon Peyton Jones authored
      This fixes Trac #8954.
      There were actually three places where tuple occ-names
      were parsed:
        - IfaceEnv.lookupOrigNameCache
        - Convert.isBuiltInOcc
        - OccName.isTupleOcc_maybe
      I combined all three into TysWiredIn.isBuiltInOcc_maybe
      Much nicer.
  19. 03 Apr, 2014 2 commits