Metadata revisions for concurrency-1.0.0.0

Package maintainers and Hackage trustees are allowed to edit certain bits of package metadata after a release, without uploading a new tarball. Note that the tarball itself is never changed, just the metadata that is stored separately. For more information about metadata revisions, please refer to the Hackage Metadata Revisions FAQ.

No. Time User SHA256
-r1 (concurrency-1.0.0.0-r1) 2016-09-10T12:55:47Z barrucadu 3de0faeb048451ba463026c4d88e9cedf21470c4568a044be0b4bff460ad1c90
  • Changed description from

    A typeclass abstraction over much of Control.Concurrent (and some
    extras!). If you're looking for a general introduction to Haskell
    concurrency, you should check out the excellent Parallel and
    Concurrent Programming in Haskell, by Simon Marlow. If you are
    already familiar with concurrent Haskell, just change all the
    imports from Control.Concurrent.* to Control.Concurrent.Classy.* and
    fix the type errors.
    
    A brief list of supported functionality:
    
    * Threads: the @forkIO*@ and @forkOn*@ functions, although bound
    threads are not supported.
    
    * Getting and setting capablities.
    
    * Yielding and delaying.
    
    * Mutable state: STM, @MVar@, and @IORef@.
    
    * Atomic compare-and-swap for @IORef@.
    
    * Exceptions.
    
    * All of the data structures in Control.Concurrent.* and
    Control.Concurrent.STM.* have typeclass-abstracted equivalents.
    
    This is quite a rich set of functionality, although it is not
    complete. If there is something else you need, file an issue!
    
    This used to be part of dejafu, but with the dejafu-0.4.0.0 release,
    it was split out into its own package.
    
    == Why and not something else?
    
    * Why not base: like lifted-base, concurrency uses typeclasses to
    make function types more generic. This automatically eliminates
    calls to `lift` in many cases, resulting in clearer and simpler
    code.
    
    * Why not lifted-base: fundamentally, lifted-base is still using
    actual threads and actual mutable variables. When using a
    concurrency-specific typeclass, this isn't necessarily the case.
    The dejafu library provides non-IO-based implementations to allow
    testing concurrent programs.
    
    * Why not IOSpec: IOSpec provides many of the operations this
    library does, however it uses a free monad to do so, which has
    extra allocation overhead. Furthermore, it does not expose enough
    of the internals in order to accurately test real-execution
    semantics, such as relaxed memory.
    
    See the <https://github.com/barrucadu/dejafu README> for more
    details.
    to
    A typeclass abstraction over much of Control.Concurrent (and some
    extras!). If you're looking for a general introduction to Haskell
    concurrency, you should check out the excellent Parallel and
    Concurrent Programming in Haskell, by Simon Marlow. If you are
    already familiar with concurrent Haskell, just change all the
    imports from Control.Concurrent.* to Control.Concurrent.Classy.* and
    fix the type errors.
    
    A brief list of supported functionality:
    
    * Threads: the @forkIO*@ and @forkOn*@ functions, although bound
    threads are not supported.
    
    * Getting and setting capablities.
    
    * Yielding and delaying.
    
    * Mutable state: STM, @MVar@, and @IORef@.
    
    * Atomic compare-and-swap for @IORef@.
    
    * Exceptions.
    
    * All of the data structures in Control.Concurrent.* and
    Control.Concurrent.STM.* have typeclass-abstracted equivalents.
    
    This is quite a rich set of functionality, although it is not
    complete. If there is something else you need, file an issue!
    
    This used to be part of dejafu, but with the dejafu-0.4.0.0 release,
    it was split out into its own package.
    
    == Why this and not something else?
    
    * Why not base: like lifted-base, concurrency uses typeclasses to
    make function types more generic. This automatically eliminates
    calls to `lift` in many cases, resulting in clearer and simpler
    code.
    
    * Why not lifted-base: fundamentally, lifted-base is still using
    actual threads and actual mutable variables. When using a
    concurrency-specific typeclass, this isn't necessarily the case.
    The dejafu library provides non-IO-based implementations to allow
    testing concurrent programs.
    
    * Why not IOSpec: IOSpec provides many of the operations this
    library does, however it uses a free monad to do so, which has
    extra allocation overhead. Furthermore, it does not expose enough
    of the internals in order to accurately test real-execution
    semantics, such as relaxed memory.
    
    See the <https://github.com/barrucadu/dejafu README> for more
    details.

-r0 (concurrency-1.0.0.0-r0) 2016-09-10T12:25:34Z barrucadu 645722b6229603fc47285a409aa99f13415fa561a9cb4d6c7552e8b5bb6eb29f