
On Thu, Aug 05, 2010 at 04:08:38PM -0400, Nick Bowler wrote:
On 2010-08-03 15:23 -0700, John Meacham wrote:
It is more an accident of ghc's design than anything, the same mechanism that allowed threads to call back into the runtime also allowed them to be non blocking so the previously used 'safe' and 'unsafe' terms got re-used. personally, I really don't like those terms, they are non-descriptive in terms of what they actually mean and presuppose a RTS similar to ghcs current design. 'reentrant' and 'blocking' which could be specified independently would be better and would be more future-proof against changes in the RTS or between compilers.
I thought "safe" meant "the foreign function is allowed to call Haskell functions", which seems to not have anything to do with whether the function is re-entrant (a very strong condition).
Yeah, that is probably not the right term, I was thinking 're-entrant' as in it re-enters the haskell run-time, but that could cause confusion with other meanings of that word. Perhaps 'nocallbacks' or 'nohs' 'nonnative'. John -- John Meacham - ⑆repetae.net⑆john⑈ - http://notanumber.net/