~/talk

Severing ties: the need for non-updateable thunks

Talkat HIW 2023 · on Monday, 2023-09-04· [haskell]
links:none on file
slides:none on file

Lazy thunk updates create long in-memory instruction chains and trigger expensive major GCs; duplicating thunks before pattern-matching severs those links so each evaluated copy can be collected by minor GC. The practical workaround is the dupIO package which provides non-updateable thunks via shallow copies (no deep-graph copy), is tested on GHC 8.6–9.6, removes the linked-list leak (the demo shows a 1.6 GB pipe buildup without duplication), and works but remains a low-level, hacky solution rather than a language-level fix.

AI-written summary · about

  1. 0:00Introduction to the problem
  2. 1:03DSL memory leak explained
  3. 2:29The thunk duplication solution
  4. 6:20Complexities of manual copying
  5. 9:45GHC optimization pitfalls
  6. 12:34Risks of unsafe operations
  7. 14:00GC promotion and heap growth
  8. 19:19Current tools and future ideas
  9. 22:09Q&A and concluding remarks
~/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.