"Simon Marlow" <[EMAIL PROTECTED]> writes: > Ok, I'm sad to say that the problem we recently uncovered to do with > finalizers sharing values with the rest of the program essentially kills > off the possibility of doing Haskell finalizers in systems without > proper concurrency support.
Well, I'm not yet totally convinced that we can't do it, but I'll happily leave it for another time to work out how. > Let's keep C finalizers for the FFI spec. In GHC I imagine we'll > continue to offer Haskell finalizers as an extension, but I haven't > decided on an interface yet (suggestions welcome). Since ghc-5.04.x already has the published interface module Foreign.ForeignPtr newForeignPtr :: Ptr a -> IO () -> ForeignPtr a addForeignPtrFinalizer :: ForeignPtr a -> IO () -> IO () I suggest we keep those names for the "Haskell finaliser" extension. This would eliminate version configuration questions for both existing and future code that uses the interface. I quite liked the suggestion of newUnsafeForeignPtr :: Ptr a -> FunPtr (Ptr a->IO ()) -> ForeignPtr a addUnsafeForeignPtrFinalizer :: ForeignPtr a -> FunPtr (Ptr a->IO ()) -> IO () for the C-finaliser standard. Regards, Malcolm _______________________________________________ FFI mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/ffi