Severing Ties: The Need for Non-Updateable Thunks
Offered By: ACM SIGPLAN via YouTube
Course Description
Overview
Explore the concept of non-updateable thunks in Haskell programming through this conference talk from HIW'23. Delve into the differences between call-by-name evaluation and lazy evaluation, focusing on their impact on memory management and performance. Examine how certain data structures in Haskell, particularly streaming abstractions, can lead to memory leaks and inefficient garbage collection due to accidental sharing and thunk allocation. Learn about the dupIO package as a potential solution for creating non-updateable thunks, which can sever ties between instructions and prevent linked list formation. Understand the implications of this approach for improving memory efficiency and reducing the need for major garbage collection in large applications. Consider the broader implications of this low-level solution and the potential for more fundamental approaches to addressing these issues in Haskell programming.
Syllabus
[HIW'23] Severing ties: the need for non-updateable thunks
Taught by
ACM SIGPLAN
Related Courses
Functional Program Design in ScalaÉcole Polytechnique Fédérale de Lausanne via Coursera An introduction to Haskell Programming
Chennai Mathematical Institute via Swayam Creating a Custom Function in R
Pluralsight Functional Program Design in Scala (Scala 2 version)
École Polytechnique Fédérale de Lausanne via Coursera Scala Design Patterns
Pluralsight