Skip to content

a sum-file program not working under Windows

This program just hangs under Windows, ghc-6-6.msi:

module Main where

main = print . sum . map read . lines =<< getContents

I compiled with:

ghc -O sumcol.hs -o sumcol_O.exe

and ran as:

sumcol_O.exe "sumcol-input.txt"

where sumcol-input.txt = sumcol-input.txt :: Text_File (KB 6, Lines 1000)

Replacing 'getContents' with 'readFile "sumcol-input.txt" ' works.

Similar observed behavior under ghci:

Prelude> :set args "sumcol-input.txt"
Prelude> print . sum . map read . lines =<< getContents
_

and

Prelude> print . sum . map read . lines =<< readFile "sumcol-input.txt"
500
Prelude> _

It might also be relevant that when compiling and running this version of the sum-file program:

{-# OPTIONS -fbang-patterns #-}
module Main where

import Data.List
import qualified Data.ByteString.Lazy.Char8 as L

main = print . foldl' (+) 0 . unfoldr parse =<< L.getContents

parse !s | Just (n,t) <- L.readInt s = Just (n, L.tail t)
         | otherwise                 = Nothing

with

ghc -O -fglasgow-exts sumcol.hs -o sumcol_O.exe

and then

sumcol_O.exe "sumcol-input.txt"

I get

sumcol_O.exe: <stdin>: hGetBufNonBlocking: resource exhausted (Not enough space)

System: ghc 6.6 under WinXP Pro SP2 Intel Celeron 2.53GHz, 512 RAM

I'll be happy to provide any other necessary information:

Fernando Gonzalez, nanotitan at google's mail service

Trac metadata
Trac field Value
Version 6.6
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information