FFI, safe vs unsafe
simonmar at microsoft.com
Tue Apr 11 04:13:00 EDT 2006
What are the conclusions of this thread?
I think, but correct me if I'm wrong, that the eventual outcome was:
- concurrent reentrant should be supported, because it is not
significantly more difficult to implement than just concurrent.
- the different varieties of foreign call should all be identifiable,
because there are efficiency gains to be had in some implementations.
- the default should be... concurrent reentrant, presumably, because
that is the safest. (so we need to invert the notation).
So, can I go ahead and update the wiki? I'll try to record the
rationale from the discussion too.
I'd like to pull out something from the discussion that got a bit lost
in the swamp: the primary use case we have for concurrent reentrant is
for calling the main loop of a GUI library. The main loop usually never
returns (at least, not until the application exits), hence concurrent,
and it needs to invoke callbacks, hence reentrant.
More information about the Haskell-prime