[Haskell-cafe] Re: [Haskell] Top Level <-
ganesh at earth.li
Sat Aug 30 08:52:03 EDT 2008
On Sat, 30 Aug 2008, Ashley Yakeley wrote:
> Ganesh Sittampalam wrote:
>> On Sat, 30 Aug 2008, Ashley Yakeley wrote:
>>> Ganesh Sittampalam wrote:
>>>> This seems fine to me. It's based on something that already does work
>>>> properly across a process scope,
>>> But you agree that IORefs define a concept of "process scope"?
>> I'm not sure that they *define* process scope, because it might be safe
>> to use them across multiple processes; it depends on OS-dependent
>> properties. But they exist *at least* at process scope.
> How can one use IORefs across multiple processes? They cannot be serialised.
Firstly, that's a property of the current implementation, rather than a
universal one, IMO. I don't for example see why you couldn't add a
newIORef variant that points into shared memory, locking issues aside.
Also, the issue is not whether you can *use* them across multiple
processes, but whether they are unique across multiple processes.
Uniqueness has two possible definitions; aliasing, and representational
equality. No two IORefs will ever alias, so by that definition they exist
at global scope. For representational equality, that exists at least at
process scope, and perhaps more.
More information about the Haskell-Cafe