On 18/10/2009 20:15, Chryssochoidis Christos wrote:
Thanks Don for your reply.
I may have overlooked something in the blog post you gave, but my
understanding is that it talks about the user's input/output to and from
GHCi and the file system. The user IO with non-Latin chars seems to work
fine in GHC 6.12.1; e.g.:


*Main> putStrLn "πρόχειρον.hs"
πρόχειρον.hs

*Main> getLine >>= putStrLn
πρόχειρον.hs
πρόχειρον.hs
*Main>

It's only when GHCi attempts to print a diagnostic message containing a
filename with non-Latin chars that the garbling occurs:

*Main> :load πρόχειρον.hs
[1 of 1] Compiling Main ( πρόχειρον.hs, interpreted )

πρόχειρον.hs:1:23:
Not in scope: type constructor or class `Boo'
Failed, modules loaded: none.
Prelude>

It would be nice if the error messages at least showed correctly the
filename.

Maybe this has something to do with Haskeline?

It's not to do with Haskeline. The real underlying problem is that our filesystem APIs on Unix interpret FilePath as [Word8] without doing any encoding/decoding; they just strip off all but the low 8 bits of each Char. This is a long-standing problem, and won't be solved properly until we switch to an abstract FilePath type, but that's a big change that will break lots of code.

Lots more good discussion here:

http://hackage.haskell.org/trac/ghc/ticket/3456

If there were a filePathToString function we could use it in GHC to fix the above glitch.

Cheers,
        Simon
_______________________________________________
Glasgow-haskell-users mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to