C stack

Simon Marlow simonmar@microsoft.com
Mon, 18 Dec 2000 05:40:24 -0800

> Simon Marlow wrote:
> > 
> > I don't forsee any problems with the C stack - the stack 
> pointer stays
> > static during execution of Haskell code, and only moves 
> when we do a C
> > call or return to the RTS.
> But how do I get the address of the bottom of the stack ? It 
> seems I can
> define a C main so I can get the bottom of the stack, but how 
> do I make
> it call Haskell's main to start the application ?

Well, you could "foreign export" your top-level Haskell function and
just call it from C.  Check out ghc/includes/RtsAPI.c for the API (you
need to call startupHaskell() first and shutdownHaskell() afterward).
Sadly we haven't documented this stuff very well.