
Hallo,
On 4/24/09, Donn Cave
Quoth Alex Queiroz
, Actually some Scheme compilers have a "c-declare" form that lets you create C functions, which can be called from C, Haskell, Java, Ruby etc.
That would be like what you get with Haskell FFI "export"?
When I do this with nhc98, I need a nhc98 "main", and I would expect the same with GHC. Part of the deal would be smuggling in and initializing the Haskell runtime. Also figuring out storage, if returning any values from the exported Haskell function (as opposed to poking them into address parameters.) I can see how this would not be suitable for a library.
Incurring the risk of being too much off-topic, I'll just say that I use the Gambit-C Scheme compiler to produce C code that I link with my C driver code. I need to write the driver ("main" and friends) in C because my software is compiled as a Windows service or POSIX daemon, which requires special care. But of course you must link in the Scheme runtime, with the garbage collector, Scheme data types etc. Cheers, -- -alex http://www.ventonegro.org/