On Wed, Sep 25, 2002 at 06:18:35AM +0100, Alastair Reid wrote: > > Consider regcomp in Test.Regex.Posix. > > I didn't find this example at all convincing because the existing > finalizer was written as a monolithic whole and this is a simpler, > clearer way to write the finalizer.
If the libraries used newForeignPtr with the type now given in the FFI spec, that finalizer would have to be rewritten in C: void finalize_reg(regex_t *r) { regfree(r); hs_free(r); } Since the order of multiple finalizers is unspecified, one is forced to define a single finalizer in the foreign language that calls your finalizers in the right order. If the struct were allocated with mallocForeignPtr, you need another C call to use as the finalizer for that, say hs_f_free(). Each foreign language needs a name for each finalizer. It would work, but it's ugly, and it underlines the uselessness of addForeignPtrFinalizer without a specified order. _______________________________________________ FFI mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/ffi