~/talk

Stretching the Glasgow Haskell Compiler: Nourishing GHC with Domain-Driven De...

Talkat FUNARCH 2023 · on Friday, 2023-09-08· [functional-programming, software-architecture]
links:none on file
links:none on file
slides:none on file

Analysis of the Glasgow Haskell Compiler finds concrete anti-patterns: shotgun parsing — ad hoc runtime predicates (about 56 occurrences counted) that proliferate checks and hide bugs — and layering leaks where DynamicFlags acts like a global mutable record that spreads coupling. The proposal extracts a four‑layer architecture (presentation, application/driver, domain, infrastructure), breaks large records into explicit components, and introduces small CMM config records (9 fields vs 191) plus handshake functions; these changes enable unit tests that were previously impractical and reduce silent bug introduction.

AI-written summary · about

  1. 0:00Introduction
  2. 1:26Talk overview
  3. 2:09Key takeaways
  4. 3:34Project goals and GHC
  5. 4:20Caveats and scope
  6. 6:26System components and domains
  7. 7:33Shotgun parsing in GHC
  8. 13:41Why shotgun parsing breaks modularity
  9. 15:08Layering violations in GHC
  10. 16:58Consequences of layering violations
  11. 17:42Domain-driven design philosophy
  12. 18:46Hard-to-change systems
  13. 19:29Brand books and system guidance
  14. 20:54Package naming in GHC
  15. 23:53Recommendations for domain-driven design
  16. 24:59Four-layer architecture for GHC
  17. 26:46Module hierarchy and communication
  18. 27:49Supple design and componentization
  19. 29:58Explicit layering in hierarchy
  20. 30:23Componentization and global state
  21. 33:17Component-wise configuration in GHC
  22. 36:18Isolating components with configs
  23. 37:21References and concluding remarks
  24. 38:56Q&A
  25. 39:58Cross-cutting concerns in compiler
  26. 42:09Organizing large domain layers
  27. 44:18Design goals and trade-offs
  28. 48:15Final comments
~/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.