[GHC] #10800: vector-0.11

GHC ghc-devs at haskell.org
Thu Aug 27 13:48:29 UTC 2015


#10800: vector-0.11
-------------------------------------+-------------------------------------
              Reporter:  bgamari     |             Owner:  bgamari
                  Type:  bug         |            Status:  new
              Priority:  normal      |         Milestone:  7.12.1
             Component:  Compiler    |           Version:  7.10.2
              Keywords:              |  Operating System:  Unknown/Multiple
          Architecture:              |   Type of failure:  Compile-time
  Unknown/Multiple                   |  performance bug
             Test Case:              |        Blocked By:
              Blocking:              |   Related Tickets:
Differential Revisions:              |
-------------------------------------+-------------------------------------
 vector-0.11 takes substantially longer to compile with 7.10 than 7.8

 Unfortunately the issue appears to be in generated code.

 Lacking time right now so I'm just going to drop the IRC log here,

 Compile log: https://travis-ci.org/haskell/vector/builds/56179052

 {{{
 * hvr thought some compile-time improvements landed in 7.10.2
 <dolio> I don't think it uses sufficiently less memory to prevent it from
 using all memory on travis and failing.
 <dolio> Which is why it suddenly went from 8 minutes to 35.
 <dolio> Although it's also significantly worse even when you have enough
 memory.
 <dolio> hvr: 7.8.4 takes 4m40s, 7.10.2 takes 16m40s.
 <dolio> i7 4770, 32GB RAM.
 <dolio> vector 0.11 branch.
 <dolio> It's not as bad in the 0.10 branch.
 <dolio> It uses like 60% more memory, too.
 <dolio> Maybe more.
 <dolio> It's really just one or two files in the test suite that take all
 the time/memory.
 <hvr> dolio: does vector do some aggressive INLINEing?
 <dolio> Well, yes.
 <hvr> more in 0.11 than in 0.10?
 <dolio> It does more stuff in 0.11, yes.
 <bgamari> vector 0.11 has this new chunked streaming abstraction IIRC
 <hvr> there's a generic one though iirc
 <dolio> 0.11 introduced the generalized stream fusion, so there's like
 three different things going on that specialization has to select one of.
 <dolio> Instead of just one thing like in 0.10.
 <dolio> Anyhow, the problem file(s) generate a bunch of tests using
 template Haskell, so they're pretty opaque.
 <dolio> I'm pretty sure it's the generated code that's the problem,
 though.
 <dolio> Not the template haskell that generates it.
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10800>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list