behaviour change in getDirectoryContents in GHC 7.2?
gale at sefer.org
Tue Nov 8 00:39:40 CET 2011
Simon Marlow wrote:
>> It would probably be better to have an abstract FilePath type and to keep
>> the original bytes, decoding on demand. But that is a big change to the API
>> and would break much more code. One day we'll do this properly; for now we
>> have this, which I think is a pretty reasonble compromise.
John Millikin wrote:
> Please understand, I am not arguing against the existence of this
> encoding layer in general. It's a fine idea for a simplistic
> high-level filesystem interaction library. But it should be
> *optional*, not part of the compiler or "base.
The problem is that Haskell 98 specifies type FilePath = String.
In retrospect, we now know that this is too simplistic.
But that's what we have right now.
> As implemented in GHC 7.2, this encoding is a complex and untested
> behavior with no escape hatch.
Isn't System.Posix.IO the escape hatch?
Even though FilePath is still used there instead of
ByteString as it should be, this is the
low-level POSIX-specific library. So the old hack of
interpreting the lowest 8 bits as bytes makes
a lot more sense there.
More information about the Glasgow-haskell-users