Changes between Version 4 and Version 5 of Concurrency


Ignore:
Timestamp:
Mar 22, 2006 10:53:53 AM (9 years ago)
Author:
simonmar@…
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Concurrency

    v4 v5  
    22
    33== References ==
    4  * [http://www.haskell.org/ghc/docs/papers/threads.ps.gz A Draft report addendum] describing the interaction between GHC's concurrency and the FFI.
    5  * The [http://www.haskell.org/ghc/docs/latest/html/libraries/base/Control-Concurrent.html Control.Concurrency] module
    6  * [http://research.microsoft.com/~simonpj/papers/stm/ Software Transactional Memory]
     4
     5on the wiki:
     6
    77 * ForeignBlocking
    88
     9Documentation:
     10
     11 * The [http://www.haskell.org/ghc/docs/latest/html/libraries/base/Control-Concurrent.html Control.Concurrency] module
     12
     13Papers and other docs:
     14
     15 * [http://www.haskell.org/ghc/docs/papers/concurrent-haskell.ps.gz Concurrent Haskell]  (the original paper, including a semantics)
     16 * [http://www.haskell.org/~simonmar/papers/conc-ffi.pdf Extending the Haskell FFI with Concurrency] (a specification of the interaction between concurrency and the FFI, with a semantics)
     17 * [http://www.haskell.org/ghc/docs/papers/threads.ps.gz A Draft report addendum] (a shorter version of the above paper).
     18 * [http://research.microsoft.com/~simonpj/papers/stm/ Software Transactional Memory]
     19
    920== Pros ==
    10  * Vital for some modern applications and large applications commonly require it
    11  * Stable MVar implementation is well understood and tested
     21 * Vital for some modern applications and large applications commonly require it.
     22 * Stable {{{MVar}}} implementation is well understood and tested.
    1223
    1324== Cons ==
     
    1526 * Providing a 'select' and non-blocking IO would be enough to allow people to implement something like it themselves in haskell and are provided by most systems as primitives.
    1627 * Things like the 'poor man's concurrency monad' can achieve some of the benefits
    17  * only one implementation exists, design space not very well explored.
    18  * Unsure at this point if new STM will replace older MVar-style concurrency
     28
     29== Proposal ==
     30
     31 * Standardise on Concurrent Haskell without STM.  It is our view that even in the presence of STM, {{{MVar}}}s offer
     32   functionality that is distinct from STM and separately useful, so this leaves room for growth.
     33 
     34 * Use the semantics from [http://www.haskell.org/~simonmar/papers/conc-ffi.pdf Extending the Haskell FFI with Concurrency]
     35
     36Questions:
     37
     38 * Decide how much pre-emption is acceptable, and figure out how to specify this.
     39
     40 * Should we specify what an implementation that doesn't provide concurrency should do? (e.g. provide an implementation
     41   of MVars in terms of IORefs, so that concurrency-safe libraries can be written portably).
     42
     43 * Require bound thread support, or make it optional?  (YHC has concurrency with non-blocking foreign calls, but doesn't
     44   have bound threads as yet.)