ANN: H98 FFI Addendum 1.0, Release Candidate 13

Manuel M T Chakravarty chak at cse.unsw.edu.au
Fri Oct 31 02:45:41 EST 2003


Dear FFI Folks,

Despite my claim that RC12 would, modulo errata, become
Version 1.0 of the FFI Addendum, I like to propose another
(last!) set of changes.  The two changes are the following:

(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'.

    I propose to include this feature, as it has been
    discussed on this list before, and has only be omitted
    due to an oversight by me.  (Thanks to Peter Gammie for
    pointing me to the oversight.)

(2) The inclusion of John Meacham's `CWString' and
    `CLString' routines.  However, I propose to make the
    localised versions (aka `CLString') the default and
    rename the previous (8bit-based) routines to use a
    `CAString' suffix, where the `A' stands for ASCII.

    John proposal has been favourably received on this list
    and it covers an important aspect of string marshalling
    quite flexibly with a simple interface.

Hence, Release Candidate 13 of the H98 FFI Addendum 1.0 is
now available from

  http://www.cse.unsw.edu.au/~chak/haskell/ffi/

Please check sections 5.5 and 6.3, which have been
considerably extended.  For the second time...I consider
Version 1.0 of the FFI Addendum to be completed; no changes
except linguistic ones and plain error corrections will be
accepted anymore for this version.

Cheers,
Manuel

PS: Both changes have already been discussed with Simon
    Marlow and Alastair Reid in person.

-=-

Changes since RC12:
* Acks : Added John Meacham
* 4.1.5: Bug fix courtesy of Wolfgang Thaller
* 5.5  : Added `FinalizerEnvPtr', `newForeignPtrEnv', and
         `addForeignPtrFinalizerEnv'
* 6.3  : Added John Meacham proposal for `wchar_t' support as well localised
         string marshalling; in particular, this adds `CWString' and
         `CWStringLen' as well as the `CWString' and the `CAString' family
         of marshalling routines.  In addition, `charIsRepresentable' was
         added. 


More information about the FFI mailing list