Why and How the External STG interpreter is Useful (Online presentation, Dec 2, Friday, 17:00 UTC)

Csaba Hruska csaba.hruska at gmail.com
Thu Dec 2 14:52:10 UTC 2021


Today I'll do a presentation about the external stg interpreter.
If you are interested please join and ask questions.

Csaba Hruska

Haskell: Why and How the External STG Interpreter is Useful

The external STG interpreter is a from scratch implementation of the STG
machine in Haskell. Currently it supports almost all GHC primops and RTS
features. It can run real world Haskell programs that were compiled with
GHC Whole Program Compiler (GHC-WPC). GHC-WPC is a GHC fork that exports
the whole program STG IR.

The external STG interpreter is an excellent tool to study the runtime
behaviour of Haskell programs, i.e. it can run/interpret GHC or Pandoc. The
implementation of the interpreter is in plain simple Haskell, so it makes
compiler backend and tooling development approachable for everyone. It
already has a programmable debugger which supports step-by-step evaluation,
breakpoints and execution region based inspection. It also can export the
whole program memory state and call-graphs to files for further
investigation. These features make it easy to find a memory leak or to
identify a performance bottleneck in a large real world Haskell application.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20211202/a61eabac/attachment.html>

More information about the ghc-devs mailing list