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)