Hi guys,
It's also possible to start the Haskell runtime from within C/C++,
using the hs_init() and hs_exit() functions (you can just call them
each one at startup and shutdown before calling into any Haskell code
that's been "foreign export"ed), to skip the c_main business.
See 8.2.1.1 here:
http://www.haskell.org/ghc/docs/7.4.1/html/users_guide/ffi-ghc.html
There's a great chapter in Real World Haskell on exporting and
importing functions to call to and from C/C++:
http://book.realworldhaskell.org/read/interfacing-with-c-the-ffi.html
For Objective-C, Objective Haskell is an even higher level (and quite
excellent) project for calling to and from Obj-C and converting its
standard data types (NSDictionaries, NSStrings, NSData etc.) into
Haskell's (Maps, Text, ByteStrings etc.), and vice-versa.
https://github.com/jspahrsummers/ObjectiveHaskell
It uses Template Haskell to make importing and exporting extremely
easy and clean, but sadly ghc-ios doesn't support TH quite yet. I have
an experimental branch that replaces the TH with manually-written
boilerplate but of course it's a lot messier. I'll be publishing it
soon anyway : ).
Cheers
Luke
On Sat, Dec 1, 2012 at 1:26 PM, Stephen Paul Weber
Somebody claiming to be Casey Basichis wrote:
Is the FFI the right tool for a situation where, while used extensively, Haskell is more or less there to take in data, like lists and spit out data like vectors etc back to C.
My current favourite way to do this is to start in Haskell-land and call some entry-point function in extern "C" that takes function pointers as arguments. These function pointers become the way that C++ code can call back into Haskell-land.
This is what I am using for http://github.com/singpolyma/haskades
-- Stephen Paul Weber, @singpolyma See http://singpolyma.net for how I prefer to be contacted edition right joseph
_______________________________________________ iPhone mailing list iPhone@haskell.org http://www.haskell.org/mailman/listinfo/iphone