> I dont have cvs write access but you should mention something about > expressing gc dependencies between ForeignPtr's. the only two > ways to do > this in the current haskell systems are > * weak pointers > * touchForeignPtr from the finalizer of another ForeignPtr
Actually I have a feeling that in GHC it doesn't work to use touchForeignPtr from the finalizer of one ForeignPtr in order to keep another alive. According to our semantics for weak pointers, I think the two finalizers can still be run together, because pointers from a finalizer are not followed when calculating reachability. Hmm. I'm not sure what to do about this. > if the second one is not allowed by restricting us to C only > finalizers, > then the first needs to be added into the FFI, (or some other > mechanism > invented). I consider this functionality vital for any non-trivial use > of ForeignPtr, and it becomes more important as we move more > stuff to C > land, as C structures become more common. Yes, this is a good point. I'll add it to the document. > for more info on the use of this, see the FFI touchForeignPtr > documentation and the paper describing Weak pointers in ghc. the fact > that multiple people saw the need for this and came up with solutions > probably says something about its usefulness. Cheers, Simon _______________________________________________ FFI mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/ffi