behaviour change in getDirectoryContents in GHC 7.2?
Simon Marlow
marlowsd at gmail.com
Tue Nov 8 11:52:35 CET 2011
On 07/11/2011 17:57, Ian Lynagh wrote:
> On Mon, Nov 07, 2011 at 05:02:32PM +0000, Simon Marlow wrote:
>>
>> Basically, imagine a reversible transformation:
>>
>> encode :: String -> [Word8]
>> decode :: [Word8] -> String
>>
>> this transformation is applied in the appropriate direction by the
>> IO library to translate filesystem paths into FilePath and vice
>> versa. No information is lost
>
> I think that would be great if it were true, but it isn't:
>
> $ touch `printf '\x80'`
> $ touch `printf '\xEE\xBE\x80'`
> $ ghc -e 'System.Directory.getDirectoryContents ".">>= print'
> ["\61312",".","\61312",".."]
>
> Both of those filenames get encoded as \61312 (U+EF80).
Ouch, I missed that. I was under the impression that we guaranteed
roundtripping, but it seems not.
Max - we need to fix this.
Cheers,
Simon
More information about the Glasgow-haskell-users
mailing list