possible strictness bug in profiled version of a program

Here is a test program (file name prgSrc.hs): import Data.Array.Unboxed main = do let l1 = [1..10] :: [Int] let l2 = [ map (i+) l1 | i <- [1..5000000] ] let l3 = map (\l -> listArray (1,length l) l) l2 :: [UArray Int Int] print $ accumulate l3 0 accumulate [] rv = rv accumulate (h:t) rv = let nextRv = (rv + sum (elems h)) in accumulate t $! nextRv I used ghc 7.0.3-2 on archlinux, 64 bit version. I created it only to check how much memory short unboxed arrays consume. Thanks to the "$!" call at the last line of the "accumulate" function there should not be any stack overflow. When I compile with these options: --make prgSrc.hs -O2 --make prgSrc.hs -prof -auto-all -caf-all --make prgSrc.hs then there is no problem. But when I compile with these options: -O2 -prof -auto-all -caf-all --make prgSrc.hs then program runs out of stack. This indicates that there is a bug while compiling "$!" in an optimized profiling version of this program. Is it a bug? Should it be reported to the ghc trac database? Peter.

On 07/30/2011 10:25 PM, Ian Lynagh wrote:
On Mon, Jul 25, 2011 at 06:21:16PM +0200, Peter Hercek wrote:
Is it a bug? Should it be reported to the ghc trac database? Please report it and we'll take a look.
Thanks Ian
It is done: http://hackage.haskell.org/trac/ghc/ticket/5363 Peter.
participants (2)
-
Ian Lynagh
-
Peter Hercek