C->Haskell is an interface generator that simplifies the development of Haskell bindings to C libraries. It processes existing C header files that determine data layout and function signatures on the C side in conjunction with Haskell modules that specify Haskell-side type signatures and marshaling details.
Hooks embedded in the Haskell code signal access to C structures and functions -- they are expanded by the interfacing tool in dependence on information from the corresponding C header file. Another noteworthy property is the lightweight nature of the approach. The idea for the tool was developed during the implementation of Gtk+HS, a Haskell binding for the GUI toolkit GTK+. The latter is no longer under active development, but its successor, Gtk2Hs, also uses C->Haskell.
The generator is implemented using the Compiler Toolkit and in particular the self-optimising lexer and parser combinators of the toolkit. The use of the toolkit simplified the implementation of C->Haskell considerably.
· The Glasgow Haskell Compiler
% tar -xzf < package >.tar.gz # unpack the sources
% cd < package > # change to the toplevel directory
% runghc Setup.hs configure # configure the build system
% runghc Setup.hs build # build everything
[ Become root if necessary ]
% runghc Setup.hs install # install c2hs
If you are installing from darcs, please read the corresponding section below
What's New in This Release:
· This release builds with GHC 6.4 through to 6.8 and also properly supports OpenBSD and Windows. Moreover, the documentation has been updated.