Lightweight concurrency primitives for GHC

  • Authors:
  • Peng Li;Simon Marlow;Simon Peyton Jones;Andrew Tolmach

  • Affiliations:
  • University of Pennsylvania, Philadelphia, PA;Microsoft Research, Cambridge, United Kingdom;Microsoft Research, Cambridge, United Kingdom;Portland State University, Portland, OR

  • Venue:
  • Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

The Glasgow Haskell Compiler (GHC) has quite sophisticated support for concurrency in its runtime system, which is written in low-level C code. As GHC evolves, the runtime system becomes increasingly complex, error-prone, difficult to maintain and difficult to add new concurrency features. This paper presents an alternative approach to implement concurrency in GHC. Rather than hard-wiring all kinds of concurrency features, the runtime system is a thin substrate providing only a small set of concurrency primitives, and the remaining concurrency features are implemented in software libraries written in Haskell. This design improves the safety of concurrency support; it also provides more customizability of concurrency features, which can be developed as Haskell library packages and deployed modularly.