[Haskell-cafe] ByteString.getContents fails for files >2GB on OS X

Shaun Jackman sjackman at gmail.com
Fri Jun 8 02:25:40 CEST 2012


Hi,

Data.ByteString.Char8.getContents fails for files >2GB on OS X. Is
there a fix for this?

$ cat getContents.hs
main = getContents
$ ./getContents <smallFile
$ ./getContents <bigFile
getContents: <stdin>: hGetBuf: invalid argument (Invalid argument)
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.4.1

Mac OS X 10.7.4 64-bit

As a workaround, I used ByteString.Lazy instead of the strict
ByteString, which worked, but found it was ~4 times slower for my
program, so I'd like to get the strict ByteString working with large
files.

Cheers,
Shaun



More information about the Haskell-Cafe mailing list