Changes between Version 4 and Version 5 of Concurrency


Ignore:
Timestamp:
Mar 22, 2006 10:53:53 AM (8 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.)