Difference between revisions of "Lightweight concurrency"

From HaskellWiki
Jump to navigation Jump to search
(Intro added)
(Adding substrate primitives)
Line 4: Line 4:
   
 
All of GHC's [[Concurrency|concurrency primitives]] are written in C code and is baked in as a part of the RTS. This precludes extensibility as well as making it difficult to maintain. Ideally, the concurrency libraries will be implemented completely in Haskell code, over a small subset of primitive operations provided by the RTS. This will provide a Haskell programmer the ability to build custom schedulers and concurrency libraries. For an earlier attempt at this problem, please look at Peng Li's paper [http://research.microsoft.com/en-us/um/people/simonpj/papers/lw-conc/index.htm].
 
All of GHC's [[Concurrency|concurrency primitives]] are written in C code and is baked in as a part of the RTS. This precludes extensibility as well as making it difficult to maintain. Ideally, the concurrency libraries will be implemented completely in Haskell code, over a small subset of primitive operations provided by the RTS. This will provide a Haskell programmer the ability to build custom schedulers and concurrency libraries. For an earlier attempt at this problem, please look at Peng Li's paper [http://research.microsoft.com/en-us/um/people/simonpj/papers/lw-conc/index.htm].
  +
  +
== Substrate primitives ==
  +
  +
Substrate primitives are the primitives exposed by the RTS, on top of which user-level concurreny libraries are built.
  +
  +
<haskell>
  +
  +
</haskell>

Revision as of 11:37, 7 March 2012

This page contains information about the design, implementation, problems and potential solutions for building user-level concurrency primitives in GHC.

Introdution

All of GHC's concurrency primitives are written in C code and is baked in as a part of the RTS. This precludes extensibility as well as making it difficult to maintain. Ideally, the concurrency libraries will be implemented completely in Haskell code, over a small subset of primitive operations provided by the RTS. This will provide a Haskell programmer the ability to build custom schedulers and concurrency libraries. For an earlier attempt at this problem, please look at Peng Li's paper [1].

Substrate primitives

Substrate primitives are the primitives exposed by the RTS, on top of which user-level concurreny libraries are built.