Skip to main content
    • Aa
    • Aa

Composable scheduler activations for Haskell


The runtime for a modern, concurrent, garbage collected language like Java or Haskell is like an operating system: sophisticated, complex, performant, but alas very hard to change. If more of the runtime system were in the high-level language, it would be far more modular and malleable. In this paper, we describe a novel concurrency substrate design for the Glasgow Haskell Compiler that allows multicore schedulers for concurrent and parallel Haskell programs to be safely and modularly described as libraries in Haskell. The approach relies on abstracting the interface to the user-implemented schedulers through scheduler activations, together with the use of Software Transactional Memory to promote safety in a multicore context.

Linked references
Hide All

This list contains references from the content that can be linked to their source. For a full set of references and notes please see the PDF or HTML where available.

B. N. Bershad , C. Chambers , S. Eggers , C. Maeda , D. McNamee , P. Pardyak , S. Savage & E. G. Sirer (1995) SPIN – an extensible microkernel for application-specific operating system services. Sigops Oper. Syst. Rev. 29 (1), 7477.

R. K. Dybvig & R. Hieb (1989) Engines from continuations. Comput. Lang. 14 (2), 109123.

C. T. Haynes & D. P. Friedman (1987) Abstracting timed preemption with engines. Comput. Lang. 12 (2), 109121.

A. Madhavapeddy & D. J. Scott (2014) Unikernels: The rise of the virtual library operating system. Commun. ACM 57 (1), 6169.

Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Journal of Functional Programming
  • ISSN: 0956-7968
  • EISSN: 1469-7653
  • URL: /core/journals/journal-of-functional-programming
Please enter your name
Please enter a valid email address
Who would you like to send this to? *


Full text views

Total number of HTML views: 0
Total number of PDF views: 66 *
Loading metrics...

Abstract views

Total abstract views: 135 *
Loading metrics...

* Views captured on Cambridge Core between September 2016 - 23rd August 2017. This data will be updated every 24 hours.