[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