David Menendez wrote:
On Wed, Sep 3, 2008 at 2:53 AM, Ashley Yakeley <[EMAIL PROTECTED]> 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."
<http://www.cse.unsw.edu.au/~dons/hs-plugins/hs-plugins-Z-H-6.html>

--
Ashley Yakeley
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to