[C2hs] ANN: C->Haskell version 0.14.3 "Travelling Lightly"

Manuel M T Chakravarty chak at cse.unsw.edu.au
Wed Aug 10 02:12:25 EDT 2005


I like to announce version 0.14.3 of C->Haskell, which brings the
following advances over 0.14.1:

* gcc's asm construct is supported, which is apparently important for 
  some libraries on Mac OS X (thanks to Duncan Coutts for the patch);

* C->Haskell supports cross compilation (see details below);

  [NB: C->Haskell now generates completely portable Haskell code 
   (needs only H98 + FFI) and can target C compilers on platforms
   that cannot build C->Haskell itself; eg, PalmOS.  In particular,
   C->Haskell generated bindings are suitable for nhc98 and Hugs, too.]

* hierarchical modules syntax can be used in import hooks (again thanks 
  to Duncan for the patch); and

* two new built-in translation functions "upcaseFirstLetter" and 
  "downcaseFirstLetter" are supported to generated suitable Haskell 
  names from C names (eg, for variants of enums).

Source code is available as a tar ball from

  http://www.cse.unsw.edu.au/~chak/haskell/c2hs/

or via Darcs (binary packages may appear later).

Happy Hacking,
Manuel

-=- Cross compilation -=-

C->Haskell needs to take system-specific parameters of the C compiler
used to compile the libraries for which an interface is generated into
account (most notably when bitfields are used in this library).  By
default C->Haskell uses the conventions of the C compiler that was used
to build C->Haskell itself.  From this version, C->Haskell accepts the
--platform=PLATFORM flag that enables the explicit specification of the
target platform.  This works only for platforms that are in C->Haskell's
platform specification database.  At the moment, that's only
i686-pc-linux-gnu and m68k-palmos.  However, it is very easy to
determine the platform specification for any platform on which you can
build C->Haskell: Just invoke it as `c2hs --version' and it will tell
you.  If you send me the output of `c2hs --version', I'll happily add it
to the database.  (If you'd like to target a platform on which you
cannot build C->Haskell, such as an embedded system, let me know.)



More information about the C2hs mailing list