[vector] #63: GHC infinite loop when building vector program

vector vector at projects.haskell.org
Wed Oct 12 15:17:19 BST 2011


#63: GHC infinite loop when building vector program
-----------------------+----------------------------------------------------
Reporter:  basvandijk  |       Owner:     
    Type:  defect      |      Status:  new
Priority:  major       |   Milestone:     
 Version:  0.7         |    Keywords:     
-----------------------+----------------------------------------------------
 As [http://www.haskell.org/pipermail/glasgow-haskell-
 users/2011-October/021057.html reported] on the glasgow-haskell-users
 mailinglist, when benchmarking my new [http://hackage.haskell.org/package
 /vector-bytestring 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`.

 Daniel Fischer replicated it with `vector-0.7.1` and `ghc-7.2.1` (^^C'ed
 after six minutes).
 Compilation finishes (unsurprisingly) with `-fno-spec-constr` or with
 `{-# NOINLINE f #-}`.

 It compiles fine with `vector-0.7.0.1` and `ghc-7.0.4`.

-- 
Ticket URL: <http://trac.haskell.org/vector/ticket/63>
vector <http://trac.haskell.org/vector>
Package vector


More information about the vector mailing list