[Haskell-cafe] System.FilePath Re[2]: ANN: HSH 1.2.0

Bulat Ziganshin bulat.ziganshin at gmail.com
Sat Mar 10 08:42:35 EST 2007

-- i've added crossposts to John Meacham and Einar Karttunen because
-- you also denoted interest in new i/o library

Hello Neil,

Friday, March 9, 2007, 9:12:31 PM, you wrote:

>> I note that the deadline for discussion of System.FilePath has now passed (well,
>> a long time ago :-), so it looks like it's going into base.  Any final
>> objections before we do this?

> The deadline passed before Christmas, and no one objected. I still
> intend to move it in to base,

may be it is a good time to start File library? i has some ideas for
it, and also want to propose it as SoC project. just a couple of

- ghc rts independent i/o lib
- portable async i/o which is able to work via select/epoll/...
- support for unicode filenames
- String/ByteString/UTF8String as filename
- filepath operations (your module)
- filesystem operations (System.Directory)
- support for large files (>4gb) on windows
- bytestring i/o
- interfacing with Streams and FPS libraries

there are LOTS of things that need to be implemented in order to make
modern i/o library. your module seem as a first building block. we
can't make all these things inside Base lib because upgradability
problems will hit us all the way. so i propose to make File library
consisting of your sole module and start to wait contributions :) if
someone will need just the interface you already implemented, he can
request File-0.1 version - it will be again impossible if you will
integrate your library in the Base

as i many times said, Base is the dead end for any code, so it should
contain only things that will be not changed in next 5 years. i
know how your code may be changed in near future - by adding
ByteString support. moreover, i propose to "split" base library
without losing backward compatibility just by creating new libs that
will contain essentially the same code. i propose to start new i/o lib
with your module

>> Regarding canonicalizePath, I'd be perfectly happy to change its name and/or
>> somehow make it more easily discoverable: does anyone want to make a proposal?

> I recommend either changing the name to unportableGHCCanonicalizePath
> or implementing it for Hugs ;)

> I can't think of a good name, FilePath originally called it
> makePathAbsolute,

i like this name. it denotes action and that is right because it works
in IO monad, not a pure function. and it makes clear that it does,
while "canonical" may mean everything, just like "shuffle" or

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

More information about the Haskell-Cafe mailing list