On 2007-11-08, David Roundy <[EMAIL PROTECTED]> wrote:
> On Wed, Nov 07, 2007 at 10:10:16PM +0000, Jules Bean wrote:
>> Joel Reymont wrote:
>> >Is there such a thing as memory-mapped arrays in GHC?
>> 
>> In principle, there could be an IArray instance to memory-mapped files.
>> 
>> (There could also be a mutable version, but just the IArray version 
>> would be useful).
>
> The IArray instance would be unsafe, however, because the contents of the
> file could change after you opened it, breaking referential transparency.

Or even crashing, if the size becomes smaller than the mapped area.

> I don't know what all is possible with file open modes, but I don't think
> you can guarantee that once you've opened a file it won't change (unless
> you unlink it, and know that noone else has an opened file handle to it).

File open modes won't do it, and I don't think any thing else will do
it using just POSIX behavior, either.  Linux's mmap() used to support a
DENY_WRITE flag, but it enabled DoS attacks, so it's gone.

> It may be that by opening it in write mode you could ensure that noone else
> modifies it (although I don't think this would work e.g. on nfs),

It doesn't even work locally.

-- 
Aaron Denney
-><-

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to