Lightweight Concurrency Primitives for GHC

被引:0
作者
Li, Peng [1 ]
Marlow, Simon [1 ]
Jones, Simon Peyton [1 ]
Tolmach, Andrew [1 ]
机构
[1] Univ Penn, Philadelphia, PA 19104 USA
来源
HASKELL'07: PROCEEDINGS OF THE ACM SIGPLAN 2007 HASKELL WORKSHOP | 2007年
关键词
Haskell; Concurrency; Thread; Transactional Memory;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:107 / 118
页数:12
相关论文
共 24 条
[1]  
[Anonymous], DAMP 2007
[2]  
Appel Andrew W., 1992, Compiling with Continuations
[3]  
BERTHOLD J, 2007, S TRENDS FUNCT PROGR
[4]  
BRUGGEMAN C, 1996, REPRESENTING CONTROL, P99
[5]  
CLAESSEN K, 1999, J FUNCTIONAL PROGRAM, V9, P313, DOI DOI 10.1017/S0956796899003342
[6]  
Fisher Kathleen, 2002, COMPILER SUPPORT LIG
[7]  
FLUET M, 2007, NESTED SCHEDUL UNPUB
[8]  
Fluet Matthew, 2007, P 2007 WORKSH DECL A, P37, DOI DOI 10.1145/1248648.1248656
[9]  
FORD B, 1996, US ASS 2 S OP SYST D, P91
[10]  
HALLGREN T, 2005, ICFP 05, P116, DOI DOI 10.1145/1086365.1086380