<div dir="ltr"><div dir="ltr"><div>Hello,</div><div><br></div><div>Today I'll do a presentation about the external stg interpreter.</div><div>If you are interested please join and ask questions.</div><div><a href="https://skillsmatter.com/meetups/13654-haskell-stg-interp" target="_blank">https://skillsmatter.com/meetups/13654-haskell-stg-interp</a></div><div><br></div><div><div>Regards,</div><div>Csaba Hruska</div></div><div><br></div><div>Abstract:<br><h3>
Haskell: Why and How the External STG Interpreter is Useful
</h3>
<div><p>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.</p>
<p>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.</p>
<p><a href="https://github.com/grin-compiler/ghc-whole-program-compiler-project" target="_blank">https://github.com/grin-compiler/ghc-whole-program-compiler-project</a></p>
</div></div></div></div>