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.
YOU MAY ALSO LIKE:
- Lightning Talk: Ideas for Future Haskell Tooling (SkillsCast recorded in October 2019)
- YOW! Lambda Jam 2022 (Online Conference on 1st - 30th May 2022)
- Haskell eXchange 2022 (in Online Event on 1st - 30th November 2022)
- Keynote — Haskell: What To Do When Success Can't Be Avoided (SkillsCast recorded in November 2021)
- Designing and Verifying Programs with Formal Specification (SkillsCast recorded in November 2021)