RFD: deprecate permissions-related stuff in System.Directory

Simon Marlow simonmarhaskell at gmail.com
Thu Aug 30 03:57:53 EDT 2007


Malcolm Wallace wrote:
> Simon Marlow <simonmarhaskell at gmail.com> wrote some fairly convincing
> arguments against the universal use of get/setPermissions:
> 
>> These functions are hardly ever used.
>>
>> There are a few more uses of `getPermissions`, but as pointed out
>> above,  these are usually flawed.  In any case they can usually be
>> replaced by  openFile.
> 
> 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.  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.  The current getPermissions always 
returns True for execute permission on Windows, and the one in GHC 6.8.1 
returns True if the filename ends in something like ".exe" or ".bat" (both 
are wrong, just wrong in different ways).

Cheers,
	Simon


More information about the Libraries mailing list