The c2hs package

[Tags: gpl, program]

C->Haskell assists in the development of Haskell bindings to C libraries. It extracts interface information from C header files and generates Haskell code with foreign imports and marshaling. Unlike writing foreign imports by hand (or using hsch2s), this ensures that C functions are imported with the correct Haskell types.

[Skip to ReadMe]


Versions0.15.0, 0.15.1, 0.16.0, 0.16.2, 0.16.3, 0.16.4, 0.16.5, 0.16.6, 0.17.1, 0.17.2, 0.18.1, 0.18.2, 0.19.1, 0.20.1, 0.21.1, 0.22.1, 0.23.1, 0.24.1, 0.25.1, 0.25.2, 0.26.1
Change logNone available
Dependenciesarray, base (>=2 && <5), containers, directory, filepath, language-c (>= && <0.4.0), pretty, process [details]
CopyrightCopyright (c) 1999-2007 Manuel M T Chakravarty 2005-2008 Duncan Coutts 2008 Benedikt Huber
AuthorManuel M T Chakravarty,
Home page
Bug tracker
Source repositoryhead: darcs get
UploadedWed Oct 31 21:03:01 UTC 2012 by DuncanCoutts
DistributionsDebian:0.25.2, FreeBSD:0.26.1, LTSHaskell:0.25.2, NixOS:0.26.1, Stackage:0.26.1
Downloads15499 total (371 in last 30 days)
0 []
StatusDocs not available [build log]
Successful builds reported [all 2 reports]



Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainers' corner

For package maintainers and hackage trustees

Readme for c2hs-0.16.4

               C->Haskell - Haskell Interface Generator              -*-text-*-

C->Haskell is a interfacing tool that eases Haskell access to C libraries.
The tool gets information about the C data type definitions and function
signatures by analysing the C header files of the library.  It uses this
information to compute the missing details in the template of a Haskell
module---called the binding file---that implements a Haskell binding to the C
library.  Hooks embedded in the binding file signal where, which, and how C
objects are accessed from Haskell.  The Haskell code in the binding file
determines Haskell types signatures and marshaling details.  Further
information is at

Also see the tutorial in `doc/c2hs/'.


  AUTHORS       -- Author information
  COPYING       -- GNU General Public License (GPL)
  INSTALL       -- Help on installing this package
  README        -- This file
  Setup.hs      -- Cabal build script
  TODO          -- Open problems, bugs, and ideas for future extensions
  c2hs.cabal    -- Cabal package specification
  doc           -- Documentation
  src           -- Source code
  src/C2HS      -- Main program sources
  src/Main.hs   -- Compilation driver
  tests         -- Small test cases

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= INSTALLING =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

See the file `INSTALL'.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COPYLEFT -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

This system is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later

This system is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
this system; if not, write to the Free Software Foundation, Inc., 675 Mass
Ave, Cambridge, MA 02139, USA.

NOTE: HOWEVER, all code included into generated bindings is under a BSD-style
      license that does not place any restrictions on the license of the
      inteface produced with C->Haskell (ie, closed proprietary licenses are
      possible, too).  In other words, I do not care what you use C->Haskell
      for or to whom you are giving C->Haskell or any interfaces generated with
      C->Haskell, only if you modify or improve C->Haskell itself, you have to
      contribute your changes back to the community.  Nevertheless, I will of
      course be particularly delighted if you choose to make your work freely

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- CREDITS -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

See the file `AUTHORS'.