ANN: H98 FFI Addendum 1.0, Release Candidate 7

Manuel M T Chakravarty chak@cse.unsw.edu.au
Thu, 19 Sep 2002 00:03:34 +1000 (EST)


Dear Haskellers,

RC 7 of the FFI Addendum is now available from

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

The change log since RC 4, which was the last version
circulated via haskell@haskell.org, is appended below.

Please review this specification carefully.  If no
suggestion that leads to a serious change is made within a
month, I will freeze this addendum.

Thanks,
Manuel

-=-

Changes since RC6:
* fixed typos

Changes since RC5:
* Author list: changed Alastair Reid's institution
* 1.4:   Clarified the wording
* 4.1:   Explicitly stated that access to pre-processor symbols is not
         provided by the FFI
* 4.1.1: Removed [lib] from impent syntax and discussion
* 4.1.3: Added parentheses round FunPtr ft to make it easier to 
         understand a tolerably complex type.
* 4.1.4: Removed all mention of library objects; clarified that header files
         do not impact the semantics of foreign calls, but may be required
         for correct code generation by some systems
* 5.2:   Clarified that all operations in Bits are member functions of the
         type class.  Reverse the meaning of the sign of the second argument
         for `rotate' and `shift' (this makes it the same as GHC used all
         the time).  `bitSize' on `Integer' etc is now undefined.
* 5.5:   Finalisers must be external functions to facilitate the
         implementation on Haskell systems that do not support pre-emptive
         concurrency.
         Added mallocForeignPtr and mallocForeignPtrBytes.
* 6:     Specified that HsBool==int in table2
         Relabelled column 1 in table 3 (C symbol -> CPP symbol)
         Replaced 0 and 1 with HS_BOOL_FALSE/TRUE
* 6.1:   Clarified that nullPtr (nullFunPtr) coincides with (HsPtr) NULL and
         (HsFunPtr) NULL, respectively.
         Allowing multiple calls to hs_init() and clarified the constraints
         on the relative timing between hs_set_argv() and
         getProgName/getArgs. 
         Added hs_perform_gc().

Changes since RC4:
* 5.6: Clarified documentation of `StablePtr's (RC 5)