FPS again

Bulat Ziganshin bulat.ziganshin at gmail.com
Sun Jul 16 04:55:19 EDT 2006

Hello Duncan,

Saturday, July 15, 2006, 10:23:07 PM, you wrote:

>> So, while under Unix there is absolutely no difference which mode you
>> use to open files, this makes difference on Windows. If original
>> routines uses openFile then these routines are intended to work with
>> _text_ files and their clones should give a chance to text translation
>> too. 

> So presumably the correct solution is to have the readFile, writeFile
> etc in the Data.ByteString module use openBinaryFile and the versions in
> Data.ByteString.Char8 use openFile. That way the versions that are
> interpreting strings as text will get the OS's line ending conversions.

i will vote against this because in Haskell I/O system there is
already informal principle that functions which open files in text
mode has plain names (openFile, readFile and so on), while functions
which open files in binary mode has 'Binary' in its names
(openBinaryFile, at least). your proposal will add another way to
distinct between functions working with text and binary files - based
on the module where they are defined. this will complicate the
things without need. it will be much better to continue existing
conventions and name such functions readBinaryFile and so on. but
because such functions was not requested for the standard lib, i guess
that they also not much required for the new one. so, i propose to move
these text-file manipulating operations to the .Char8 modules and
don't implement readBinaryFile/... at this moment

btw, mapFile should be also renamed to mapBinaryFile because it can't
translate text files on Windows. such name will make it clear for
users of this function and may save many nerves

Best regards,
 Bulat                            mailto:Bulat.Ziganshin at gmail.com

More information about the Libraries mailing list