
I would think there is a command you can embed in the .ghci file that
would automate the loading of the object files. But I didn't see one
on a quick scan of the manual:
http://www.haskell.org/ghc/docs/latest/html/users_guide/ghci-dot-files.html
-Corey O'Connor
On Tue, Oct 21, 2008 at 9:10 AM, Emil Axelsson
Hi,
I'm making my first attempt at using some C code in my Haskell program. I need it because I have a large amount of small constant tables, and GHC takes ages to compile the if I use ordinary lists (and the object file gets huge). If there's any way of achieving this without going to C, I'd be interested to know.
My question is about how to compile a library that contains C code. At the end of this message is a simple example of an 'increase' function. To compile, I run
ghc Increase.hs --make -o increase increase.c
and everything works as expected. But then when I want to load the example in GHCi, I need to give the object file at the command line
ghci Increase increase.o
or I get "unknown symbol `increase'" when I try to run main. It feels a bit awkward to have to list the object files every time I want to run GHCi. Is there any way of avoiding that? There must be, because if I install the files as a Cabal library, I can fire up GHCi without mentioning any object files. But I don't want to go through cabal every time I want test some part of my code.
Thanks for any help,
/ Emil
----------------
increase.h:
int increase(int x);
increase.c:
#include "increase.h"
int increase(int x) { return x+1; }
Increase.hs:
{-# INCLUDE "increase.h" #-} {-# LANGUAGE ForeignFunctionInterface #-}
import Foreign.C
foreign import ccall "increase.h increase" inc :: CInt -> CInt
main = print (inc 2, inc 20)
----------------
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe