Simon Marlow
Fri, 07 Feb 2003 02:05:20 -0800
> I don't think it was ever the intention that 'safe' should have a > guaranteed serialisation property. I think the idea was that > 'threadsafe' was the most desirable, with 'safe' and 'unsafe' only > available for use if you wanted more efficiency and had some separate > guarantees that the extra efficiency was not at the expense of > correctness. > > To be completely explicit, I think that increasing the safety level of > any foreign import should never make the program fail.
If I recall correctly, the motivation for keeping "safe" was that we
wanted to be able to make calls into non-threadsafe C libraries. Which,
incedentally, would break the property that Simon mentions above: a
non-threadsafe library would *require* foreign imports to be labelled
"safe" rather than "threadsafe".
However, at the time I don't think we appreciated the implementation
diffiulties arising from "safe". Also, Wolfgang has pointed out that
you can simulate serialisation in Haskell using MVars.
Cheers,
Simon
_______________________________________________
FFI mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/ffi