[Haskell] Haskell Applications - reg

Simon Peyton-Jones simonpj at microsoft.com
Thu Oct 4 18:43:42 EDT 2007

Stefan's last point is the key one. GHC compiles into code that doesn't use call/return instructions.  Instead, it pushes explicit return addresses, and returns by doing an indirect jump.  I bet this isn't what your tool expects.


| -----Original Message-----
| From: haskell-bounces at haskell.org [mailto:haskell-bounces at haskell.org] On
| Behalf Of Stefan O'Rear
| Sent: 04 October 2007 01:15
| To: Ganesh Narayan
| Cc: haskell at haskell.org
| Subject: Re: [Haskell] Haskell Applications - reg
| On Thu, Oct 04, 2007 at 05:32:31AM +0530, Ganesh Narayan wrote:
| > [1] Am presently constructing the call graphs from disassembled application
| > binaries; resultant graph includes ghc runtime library calls.
| Not necessary a good idea - Haskell's purity gives the compilers great
| license to reorder and rearrange code, and the laziness causes the
| dynamic call graph to differ wildly from the static call graph even
| without without optimizations.  GHC's use of a private stack with very
| weird return conventions probably isn't helping either!
| Stefan

More information about the Haskell mailing list