RFD: deprecate permissions-related stuff in System.Directory

Malcolm Wallace Malcolm.Wallace at cs.york.ac.uk
Thu Aug 30 06:14:08 EDT 2007

> > I have a perfectly OK use of getPermissions: in hmake, there is a
> > routine that scans the PATH variable looking for an executable with
> > a given name.  Basically, it is a Haskell implementation of the unix
> > 'which' command.  There is no actual use of the executable, just a
> > test to report/reject the candidate pathname.
> You wouldn't be losing much by using doesFileExist rather than 
> getPermissions.

But on unix, it would be totally incorrect to return a file of the right
name but with the wrong permissions.  This is what my Haskell `which`
originally did, and it bit me hard on a couple of occasions, hence the
extra check.

> On Windows it turns out to be really hard if not 
> impossible to check for execute permission - the only reliable way is
> to  actually try to execute the file.

Mounting a FAT filesystem on unix (or indeed any filesystem via Samba)
also makes all files appear to be executable.  These are just broken
platforms, and I don't think they should hold us hostage or dictate our
preferred API.

I'm not saying that the current API is perfect - it could certainly be
improved.  But I'm just pointing out that there are valid use-cases for
what we have currently.  If you have concrete suggestions for a new API,
I would certainly be interested.


More information about the Libraries mailing list