[Haskell-cafe] Re: [Haskell] Top Level <-
ashley at semantic.org
Wed Sep 3 03:47:31 EDT 2008
David Menendez wrote:
> On Wed, Sep 3, 2008 at 2:53 AM, Ashley Yakeley <ashley at semantic.org> wrote:
>> It's worth mentioning that the current Data.Unique is part of the standard
>> base library, while hs-plugins is rather experimental. Currently Data.Unique
>> uses the "NOINLINE unsafePerformIO" hack to create its MVar. If hs-plugins
>> duplicates that MVar, that's a bug in hs-plugins. It's up to a dynamic
>> loader to get initialisation code correct.
> Data.Unique describes itself as "experimental" and "non-portable". The
> Haskell 98 report includes NOINLINE, but also states that environments
> are not required to respect it. So hs-plugins wouldn't necessarily be
> at fault if it didn't support Data.Unique.
I found this:
"To solve this the hs-plugins dynamic loader maintains state storing a
list of what modules and packages have been loaded already. If load is
called on a module that is already loaded, or dependencies are attempted
to load, that have already been loaded, the dynamic loader ignores these
extra dependencies. This makes it quite easy to write an application
that will allows an arbitrary number of plugins to be loaded."
More information about the Haskell-Cafe