Next
Previous
Contents
- 0.95 --> 0.96:
- changed the C representation of
Haskell_ForeignObj from
(long*) to (void*) -- ANSI C guarantees that (void*)
is the widest possible data pointer.
- Updated defnition of
varid in Section
Naming the external function to reflect Haskell98's.
- Replaced confusing uses of
stdcall with ccall.
- 0.96 --> 0.97:
- Simplified the calling convention section, support for Pascal (and
fastcall) calling conventions dropped.
- Clarified that the arguments to a safe
foreign import must have
lifetimes that equal that of a C function application.
- Outlawed the use of the (GHC specific) types
ByteArray
and MutableByteArray in safe foreign imports.
- Added a note that support for the use of unboxed types in
foreign import may be withdrawn/deprecated sometime in the future.
- Simplified section which sketches a possible implementation.
- Use
Hs as prefix for the typedefs for the primitive Haskell
FFI types rather than the longer Haskell_.
- 0.97 --> 0.98:
- Leave out implementation section; of limited interest.
- Outlined the criteria used to decide on what calling
conventions to support.
- Include
newtypes that wrap primitive types in the list
of types that can be both passed to and returned from external
functions.
- 0.98 --> 0.99:
- Updated the section on type mapping to integrate some comments
from people on <ffi@haskell.org> (a fair chunk of the text
in that section was contributed by Sven Panne.)
freeHaskellFunctionPtr should belong to module Foreign, not IOExts.
Next
Previous
Contents