Skip to content

vector-0.11 compile time increased substantially with 7.10.1

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.
Trac metadata
Trac field Value
Version 7.10.2
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
Edited by Ben Gamari
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information