FFI Report, CVS Id 1.4
Manuel M. T. Chakravarty
chak at cse.unsw.edu.au
Fri Jun 1 04:36:01 EDT 2001
...is available at
http://www.cse.unsw.edu.au/~chak/haskell/ffi.{ps.gz,tex}
It contains the results of the discussion on external
entities for the C calling conventions.
Summary of changes:
* Modifiers are at the moment only for import declarations.
* import = define variable; export = use variable
* Import declarations in ccall have the following form
entity -> " ['static'] [fname] ['&'] [cid] "
| " 'dynamic' "
| " 'wrapper' "
where `fname' is the name of a header file that must end
in `.h'. If `&' prefixes the cid, we import the address
of that label. `dynamic' corresponds to the old import
dynamic and `wrapper' to the old export dynamic. This has
essentially the same functionality as Sven's last posting,
but allows to specify a header file without being forced
to specify the C identifier.
* Appendix B contains a rationale for items about which
there has been much discussion.
Open question:
In foreign import dynamic, the old FFI spec restricted
type of dynamically imported functions to
prim_args -> IO prim_result
Why did it forbid thunks and pure functions? Is this
really necessary?
Cheers,
Manuel
More information about the FFI
mailing list