GHC infinite loop when compiling vector
Bas reports: When benchmarking my new vector-bytestring package I discovered that building the following program causes GHC to go into, what seems to be, an infinite loop:
import Data.Vector (Vector)
import qualified Data.Vector.Generic as VG
main = print $ VG.foldl f z (VG.fromList [] :: Vector Int)
f = flip (:)
z = []
I build it with:
$ ghc --make vectorGHCloop.hs -O2
It compiles fine without the -O2 or if you specify -fno-enable-rewrite-rules. So it's probably a loop in a rule somewhere.
Note that the program also builds fine when I change the 'f' and 'z' to:
f = (+)
z = 0
I use vector-0.9 and ghc-7.2.1.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.2.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |