[GHC] #14272: GHC goes out of memory while compiling simple program with optimizations
GHC
ghc-devs at haskell.org
Fri Sep 22 21:57:43 UTC 2017
#14272: GHC goes out of memory while compiling simple program with optimizations
-------------------------------------+-------------------------------------
Reporter: 39aldo39 | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.10.3
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
When compiling the following program with `ghc -O Main.hs`, GHC goes out
of memory.
{{{#!hs
import Data.Bits (bit)
main :: IO ()
main = putStrLn (show (f undefined))
f :: [Int] -> Int
f = sum . zipWith ((+) . bit) [0..] . map undefined . scanl undefined
undefined
}}}
I have 6 GB RAM and 8 GB swap free, so that shouldn't be the problem. It
only happens with optimizations on, and it happens during a simplifier.
Any simpler expressions do work.
It even happens when `[0..]` is replaced by `take 1 [0..]`, but it
compiles with `take 0 [0..]`.
A straightforward workaround is to replace `zipWith f [0..]` by `\xs ->
zipWith f [0..length xs] xs`.
I ran into this problem when updating to GHC 8.2.1 from 8.0.2. But the
given program doesn't compile on older versions as well. GHC 7.10.3 was
the lowest version I could run before running into other problems. All GHC
versions I tested come from the Debian repo.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14272>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list