[Haskell-cafe] two problems with Data.Binary and Data.ByteString

Don Stewart dons at galois.com
Wed Aug 13 23:24:02 EDT 2008


bos:
> On Wed, Aug 13, 2008 at 5:39 PM, Tim Newsham <newsham at lava.net> wrote:
> > So am I understanding you correctly that you believe this is not
> > a bug?  That the use Data.Binary.decodeFile function leaks a file
> > descriptor and this is proper behavior?
> 
> I think he might be saying that decodeFile is not the place for
> checking this condition. I will put words in his mouth and say that
> checking for EOF after a decode is the responsibility of the
> application code, because the lower level cannot possibly know whether
> it makes sense for there to be residual data in the ByteString. There
> are plenty of file formats that consist of back-to-back concatenated
> chunks of data, in which reading just one chunk does not by any means
> require that a file can only contain one.

Exactly.

This particular condition -- that encode should consume exactly the
amount of data in the input file, and be sitting on EOF at the end -- is
application dependent.

That said, there's an argument to be made that the wrapper, decodeFile,
could reasonable assume this is the most common case.

-- Don


More information about the Haskell-Cafe mailing list