filepath
Ian Lynagh
igloo at earth.li
Sun Dec 9 08:34:13 EST 2007
Hi Neil,
I'm having some problems using filepath in GHC. I think some of these we
might have discussed before, but if so I've forgotten what the
conclusion was, if any, and I can't see the answers in the docs.
The first is this:
Prelude System.FilePath> "." </> "foo"
"./foo"
which means we get things like
[2 of 2] Compiling GHC.Foo ( ./GHC/Foo.hs, ./GHC/Foo.o )
rather than
[2 of 2] Compiling GHC.Foo ( GHC/Foo.hs, GHC/Foo.o )
Is there a reason the result shouldn't be "foo"?
Possibly relatedly, the current directory seems to be "" rather than
".". This turns up in at least a couple of areas:
Prelude System.FilePath> normalise "."
""
Prelude System.FilePath> splitFileName "foo"
("","foo")
I expected "." and "./" respectively, rather than the ""s. This causes
problems when giving arguments to library functions or programs, which
generally want "." or "./" rather than "", and if you are displaying a
directory to the user then you again probably don't want to print "".
As an example, I had a problem where GHC was running "gcc -I foo" rather
than "gcc -I. foo".
This looks like a straightforward bug to me:
Prelude System.FilePath> normalise "./"
"/"
I'm not convinced by
Prelude System.FilePath> isValid ""
True
I don't think I could "create a file like it".
Finally, could splitSearchPath please take an extra argument, a list of
FilePaths, to be appended to the result if it ends with a : or ; (as
appropriate)?
Thanks
Ian
More information about the Libraries
mailing list