Meet up

Haskell: Why and How the External STG Interpreter is Useful

Thursday, 2nd December, Online Meetup

This meetup was organised by Thursday's Matter in December 2021

Overview

This Thursday's Matter is... the external STG interpreter in Haskell We've rescheduled Csaba Hruska's postponed talk from Haskell eXchange 2021 as a part of our Thursday's Matter series.

Thursday's Matter is a virtual meetup on the topics that truly matter to today's developers.

Join us Thursdays when we'll be joined by an expert from around the globe. Each week we'll explore topics such as functional languages, mobile development, agile methodologies and machine learning.

THE FORMAT A 40-minute expert talk followed by a Q&A session.


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 makes it easy to find a memory leak or to identify a performance bottleneck in a large real world Haskell application.

https://github.com/grin-compiler/ghc-whole-program-compiler-project



Csaba Hruska

Compiler Engineer


Who's coming?

Attending Members