[Haskell-cafe] Re: [Haskell] Top Level <-
Ashley Yakeley
ashley at semantic.org
Sat Aug 30 16:40:49 EDT 2008
Ganesh Sittampalam wrote:
>> By global scope, I mean the largest execution scope an IORef created
>> by newIORef can have. Each top-level IORef declaration should create
>> an IORef at most once in this scope.
>
> That's a reasonable definition, if by "execution scope" you mean your
> previous definition of "where the IORef can be directly used". But it's
> not process scope; two independent Haskell libraries in the same process
> can no more share IORefs than two separate Haskell processes.
>
> [what I meant by global scope above was "the entire world"]
OK. Let's call it "top-level scope". Haskell naturally defines such a
thing, regardless of processes and processors. Each top-level <- would
run at most once in top-level scope.
If you had two Haskell runtimes call by C code, each would have its own
memory allocator and GC; IORefs, Uniques and thunks cannot be shared
between them; and each would have its own top-level scope, even though
they're in the same process.
--
Ashley Yakeley
More information about the Haskell-Cafe
mailing list