~/talk

Evolving the Haskell Debugger

Talkat 2026 Haskell Implementors' Workshop · on Friday, 2026-06-05· [haskell]
links:none on file
slides:none on file

New debugger implements custom DebugView instances, per-frame variables and real stack frames, pauses on exceptions with source locations extracted from compiled info tables plus breakpoint metadata for bytecode frames, and runs the debuggee in an external interpreter by default so stdin/stdout and threads stay isolated. Step-in/step-out works by toggling breakpoints inside every BCO (bytecode object) so every continuation needs a breakpoint; compiled frames remain unbreakable unless loaded as persistent bytecode artifacts. Vim/Emacs/VS Code DAP integration and multi-threaded primitives are landed and mostly functional.

AI-written summary · about

  1. 0:00Haskell debugger intro
  2. 1:10Live demo: breakpoint stepping
  3. 3:17Decoding stack traces
  4. 5:27Step out functionality
  5. 8:38Breakpoints in compiled code
  6. 9:43Persistent bytecode artifacts
  7. 11:08Debugging exceptions and stacks
  8. 15:41External interpreter role
  9. 17:46Custom commands for performance
  10. 19:11Debug view: data visualization
  11. 21:19Module graphs as HTML
  12. 22:44Built-in debug view instances
  13. 23:05Multi-threaded debugging progress
  14. 24:07Hot code reloading plans
  15. 24:50Haskell for time travel debugging
  16. 25:30Effect systems support
  17. 27:38Time travel through thunks
  18. 28:19Interactive execution at breakpoints
  19. 29:22Debug view: lists and laziness
  20. 30:03Garbage collection in time travel
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.