Difference between revisions of "Foreign Function Interface"
Jump to navigation
Jump to search
(Added a link to "Use another language to call a function") |
(Created (sub)sections, added link to "Dealing with fragile C libraries (e.g. MySQL) from Haskell") |
||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | == Introduction == |
||
+ | |||
The Foreign Function Interface (FFI) allows you to link Haskell programs to programs written in another language. |
The Foreign Function Interface (FFI) allows you to link Haskell programs to programs written in another language. |
||
+ | |||
+ | |||
+ | == Links == |
||
Select one of the following links for more information: |
Select one of the following links for more information: |
||
* [[FFI Introduction]] |
* [[FFI Introduction]] |
||
+ | * GHC manual: [http://www.haskell.org/ghc/docs/latest/html/users_guide/hsc2hs.html Writing Haskell interfaces to C code: hsc2hs] |
||
* The official description: chapters 8 and 24 to 37 of [http://www.haskell.org/onlinereport/haskell2010/#QQ2-15-159 The Haskell 2010 Language Report] (a draft: [http://www.cse.unsw.edu.au/~chak/haskell/ffi/ The Haskell 98 Foreign Function Interface 1.0. An Addendum to the Haskell 98 Report]) |
* The official description: chapters 8 and 24 to 37 of [http://www.haskell.org/onlinereport/haskell2010/#QQ2-15-159 The Haskell 2010 Language Report] (a draft: [http://www.cse.unsw.edu.au/~chak/haskell/ffi/ The Haskell 98 Foreign Function Interface 1.0. An Addendum to the Haskell 98 Report]) |
||
* [[FFI cook book]] |
* [[FFI cook book]] |
||
Line 8: | Line 14: | ||
* [[GHC/Using the FFI]] |
* [[GHC/Using the FFI]] |
||
* [http://research.microsoft.com/~simonpj/papers/marktoberdorf/ Tackling the awkward squad] |
* [http://research.microsoft.com/~simonpj/papers/marktoberdorf/ Tackling the awkward squad] |
||
+ | * [https://github.com/wavewave/fficxx fficxx], a Haskell-C++ Foreign Function Interface Generator |
||
⚫ | |||
⚫ | |||
* [[Applications and libraries/Interfacing other languages]] |
* [[Applications and libraries/Interfacing other languages]] |
||
⚫ | |||
⚫ | |||
⚫ | |||
* [http://rosettacode.org/wiki/Use_another_language_to_call_a_function#Haskell Use another language to call a function; Haskell] |
* [http://rosettacode.org/wiki/Use_another_language_to_call_a_function#Haskell Use another language to call a function; Haskell] |
||
+ | * [https://code.google.com/p/tabi/ TABI] a typeful tagged cross-language calling convention |
||
+ | |||
+ | |||
+ | === Blog articles === |
||
+ | |||
+ | * [http://www.serpentine.com/blog/2010/09/04/dealing-with-fragile-c-libraries-e-g-mysql-from-haskell/ Dealing with fragile C libraries (e.g. MySQL) from Haskell] |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
+ | |||
+ | [[Category:FFI]] |
Revision as of 22:39, 25 September 2014
Introduction
The Foreign Function Interface (FFI) allows you to link Haskell programs to programs written in another language.
Links
Select one of the following links for more information:
- FFI Introduction
- GHC manual: Writing Haskell interfaces to C code: hsc2hs
- The official description: chapters 8 and 24 to 37 of The Haskell 2010 Language Report (a draft: The Haskell 98 Foreign Function Interface 1.0. An Addendum to the Haskell 98 Report)
- FFI cook book
- FFI complete examples
- GHC/Using the FFI
- Tackling the awkward squad
- fficxx, a Haskell-C++ Foreign Function Interface Generator
- Applications and libraries/Interfacing other languages
- Use another language to call a function; Haskell
- TABI a typeful tagged cross-language calling convention