On Sat, Aug 25, 2007 at 12:34:45PM -0400, Brock Peabody wrote: > On 8/25/07, Henk-Jan van Tuyl <[EMAIL PROTECTED]> wrote: > > > > > > The easiest way to run Haskell software from a C program is to give the > > shell command: > > runhaskell Foo.hs > > > I'm a newbie but not that new :) I really have to be able to interpret the > Haskell from within the same process. > > > A more advanced way is, to link Haskell libraries by means of the foreign > > function interface (FFI) [1]. > > There are several tools to support FFI development [2]. I am sure my list > > of URL's is not complete. > > > > [1] http://www.cse.unsw.edu.au/~chak/haskell/ffi/ > > <http://www.cse.unsw.edu.au/%7Echak/haskell/ffi/> > > http://www.haskell.org/haskellwiki/FFI_Introduction > > http://www.haskell.org/haskellwiki/FFI_cook_book > > > > [2] http://www.haskell.org/haskellwiki/FFI_imports_packaging_utility > > http://www.haskell.org/haskellwiki/HSFFIG > > > My understanding is that FFI helps you to call into other languages from > Haskell and vice-versa. I will definitely need this, but what I can't figure > out how to do is to invoke the ghci or hugs interpreter programmatically, > in-process. I didn't see a way to do that in the links you listed, am I > missing something?
No, you're not missing anything, and there are no deliberately embeddable Haskell interpreters. Your options are: 1a. GHC, native code: Link libHSplugins.a into your program (compile Don's hs-plugins library). Then call the external functions described in http://www.cse.unsw.edu.au/~dons/hs-plugins/hs-plugins-Z-H-4.html#node_sec_7.2, Pro: Full GHC runtime speed Con: Full GHC compile-time sloth As big as GHC (20mbytes file size) Leaks memory 1b. GHC, bytecode: Write a binding to the GHC-API runStmt function. foreign export it. Pro: As fast as GHCi No leaks Con: Still huge Slow runtime 2. Hugs Link Hugs. Study the source code to runhugs. Pro: Much faster loading Much smaller footprint Con: Less polished Slow runtime Stefan
signature.asc
Description: Digital signature
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe