31 Oct
2003
31 Oct
'03
6:02 p.m.
On Fri, Oct 31, 2003 at 06:45:41PM +1100, Manuel M T Chakravarty wrote:
(1) The addition of a variant of foreign finalizers that take an extra environment argument that facilitates the emulation of closures in C. This adds two functions to `ForeignPtr'.
Regarding type FinalizerEnvPtr env a = FunPtr (Ptr env -> Ptr a -> IO ()) newForeignPtrEnv :: FinalizerEnvPtr env a -> Ptr env -> Ptr a -> IO (ForeignPtr a) addForeignPtrFinalizerEnv :: FinalizerEnvPtr env a -> Ptr env -> ForeignPtr a -> IO () Doesn't this mean that the env must be either static storage (gaining nothing) or dynamic storage that cannot be reclaimed (which brings us back to where we started)?