grin-compiler/haskell-code-spot

Visual tool to spot odd runtime behaviour of Haskell programs.

Svelte

109

78 commits

updated Nov 16, 2021

See the code

README

Haskell Code Spot

Visual tool to spot odd runtime behaviour of Haskell programs.
Keywords: data scientist, GHC eventlog, UI experiments, creative/live coding

NOTE: GHC-WPC is optional, Haskell Code Spot works with vanilla GHC eventlog out of the box.

Blog

Learn these for coding

Quick Start Guide

In one terminal:

$ (cd server && stack build && stack exec code-spot-server)

In another terminal:

$ (cd client/src && npm install && npm run dev)

Now open http://localhost:5000/ in your browser!

You will see a visualisation of data/grin.eventlog (change in client/src/App.svelte).

How to build your eventlog

If stack project is used, profiling must be enabled. After compiled with profiling, one need to run it with RTS options plh.

stack build --profile --executable-profiling --library-profiling
stack exec --profile EXECUTABLE -- ARGUMENTS +RTS -p -l -h

Previews:

This project is still in the proof-of-concept phase, but we had a great fun implementing the initial version of heap inspections and the step-by-step debugger. All of these features are based on visualizing the EventLog from GHC.

Heap Live

Heap Size

Cost Center based stack trace in step-by-step style. See the demo video.

d3js
debugger
eventlog
ghc
haskell
profiler
visualization
web-ui

Contributors

csabahruska

56 commits

andorp

17 commits

buggymcbugfix

4 commits

dredozubov

1 commits

grin-compiler/haskell-code-spot

Visual tool to spot odd runtime behaviour of Haskell programs.

Svelte

109

78 commits

updated Nov 16, 2021

See the code

README

Haskell Code Spot

Visual tool to spot odd runtime behaviour of Haskell programs.
Keywords: data scientist, GHC eventlog, UI experiments, creative/live coding

NOTE: GHC-WPC is optional, Haskell Code Spot works with vanilla GHC eventlog out of the box.

Blog

Learn these for coding

Quick Start Guide

In one terminal:

$ (cd server && stack build && stack exec code-spot-server)

In another terminal:

$ (cd client/src && npm install && npm run dev)

Now open http://localhost:5000/ in your browser!

You will see a visualisation of data/grin.eventlog (change in client/src/App.svelte).

How to build your eventlog

If stack project is used, profiling must be enabled. After compiled with profiling, one need to run it with RTS options plh.

stack build --profile --executable-profiling --library-profiling
stack exec --profile EXECUTABLE -- ARGUMENTS +RTS -p -l -h

Previews:

This project is still in the proof-of-concept phase, but we had a great fun implementing the initial version of heap inspections and the step-by-step debugger. All of these features are based on visualizing the EventLog from GHC.

Heap Live

Heap Size

Cost Center based stack trace in step-by-step style. See the demo video.

d3js
debugger
eventlog
ghc
haskell
profiler
visualization
web-ui

Contributors

csabahruska

56 commits

andorp

17 commits

buggymcbugfix

4 commits

dredozubov

1 commits

Languages

Svelte

74.9%

Haskell

13.3%

JavaScript

5.6%

CSS

5.2%