
Bulat Ziganshin wrote:
Hello Andrew,
Thursday, November 29, 2007, 1:11:38 AM, you wrote:
IMHO, someone should make a full proposal by implementing an alternative System.IO library that deals with all these encoding issues and implements H98 IO in terms of that.
We need two seperate interfaces. One for text-mode I/O, one for raw binary I/O.
When doing text-mode I/O, the programmer needs to be able to explicitly specify exactly which character encoding is required. (Presumably default to the current 8-bit truncation encoding?)
http://haskell.org/haskellwiki/Library/Streams already exists
Which would mean that we have streams to do character I/O, ByteString to do binary I/O, and System.IO to do, eh, something in between. That seems rather unfortunate to me. While the "truncate to 8 bits" semantics may be nice to keep old code working, it really isn't all that intuitive. When I do 'putStr "u\776"', I want a u with an umlaut to appear, not to get it printed as if it were "u\8". The strange thing is that Hugs at the moment _does_ print a u-umlaut, while ghci prints "u\8", which is a u followed by a backspace, so I see nothing. Reinier