[GHC] #5550: GHC infinite loop when compiling vector
GHC
cvs-ghc at haskell.org
Wed Nov 14 01:18:48 CET 2012
#5550: GHC infinite loop when compiling vector
---------------------------------+------------------------------------------
Reporter: simonpj | Owner:
Type: bug | Status: new
Priority: low | Milestone: 7.6.2
Component: Compiler | Version: 7.2.1
Keywords: | Os: Unknown/Multiple
Architecture: Unknown/Multiple | Failure: None/Unknown
Difficulty: | Testcase:
Blockedby: | Blocking:
Related: |
---------------------------------+------------------------------------------
Comment(by basvandijk):
My colleague just came to me with the question why his `shell-escape`
package didn't stop compiling when building with `-O2`. When he mentioned
he was using `vector` I remembered this bug and after reading through the
code I noticed he was [https://github.com/solidsnack/shell-
escape/blob/master/Text/ShellEscape/EscapeVector.hs#L34 using foldl'].
Roman, can we identify which uses of `foldl'` result in infinite
compilation times? If so, a note about this should probably be added to
the documentation to warn users not to use this function since GHC will
crash on it.
Here are just some quick experiments to see when GHC crashes:
{{{
ok1 = let f x y = x+y
z = 0
in V.foldl' f z
ok2 = let f (i,j) y = (i+y, j+y)
z = (0,0)
in V.foldl' f z
ok3 = let f Nothing y = Just y
f (Just x) y = Just (x+y)
z = Nothing
in V.foldl' f z
crash1 = let f x y = y:x
z = []
in V.foldl' f z
crash2 = let f (i,j) y = (y:i, j+y)
z = ([],0)
in V.foldl' f z
}}}
It seems that uses of a list anywhere in the accumulator result in
crashes. But this probably also happens on other types.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5550#comment:22>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the Glasgow-haskell-bugs
mailing list