
-- 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 ideas: - 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 "change'a'bit" -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com