concurrency 1.4.0.0 → 1.4.0.1
raw patch · 3 files changed
+276/−293 lines, 3 filesdep ~exceptionsPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: exceptions
API changes (from Hackage documentation)
Files
- CHANGELOG.markdown +0/−289
- CHANGELOG.rst +272/−0
- concurrency.cabal +4/−4
− CHANGELOG.markdown
@@ -1,289 +0,0 @@-Release Notes-=============--All notable changes to this project will be documented in this file.--This project is versioned according to the [Package Versioning Policy](https://pvp.haskell.org), the-*de facto* standard Haskell versioning scheme.---1.4.0.0----------- **Date** 2017-01-19-- **Git tag** [concurrency-1.4.0.0][]-- **Hackage** https://hackage.haskell.org/package/concurrency-1.4.0.0--### Control.Monad.Conc.Class--- The `peekTicket'` now has a more concrete type, to make deriving newtype instances of `MonadConc`- possible.-- - Old: `MonadConc m => proxy m -> Ticket m a -> a`- - New: `MonadConc m => Proxy m -> Ticket m a -> a`--[concurrency-1.4.0.0]: https://github.com/barrucadu/dejafu/releases/tag/concurrency-1.4.0.0---------------------------------------------------------------------------------------------------------1.3.0.0----------- **Date** 2017-12-23-- **Git tag** [concurrency-1.3.0.0][]-- **Hackage** https://hackage.haskell.org/package/concurrency-1.3.0.0--### Control.Concurrent.Classy.Async--- New `asyncBound`, `asyncBoundN`, `withAsyncBound`, and `withAsyncBoundN` functions for doing- asynchronous actions on bound threads. (#126)--### Control.Monad.Conc.Class--- `MonadConc` now supports bound threads with new `forkOS`, `forkOSN`, and `isCurrentThreadBound`- functions. (#126)--- New `runInBoundThread` and `runInUnboundThread` functions. (#126)--- The `rtsSupportsBoundThreads` definition is now the definition from Control.Concurrent- re-exported, not just `False`. (#126)--Note that bound threads are only supported if you compile with GHC and link with -threaded.--[concurrency-1.3.0.0]: https://github.com/barrucadu/dejafu/releases/tag/concurrency-1.3.0.0---------------------------------------------------------------------------------------------------------1.2.3.0----------- **Date** 2017-11-30-- **Git tag** [concurrency-1.2.3.0][]-- **Hackage** https://hackage.haskell.org/package/concurrency-1.2.3.0--### Control.Concurrent.Classy.Async--- New named-thread variants of the `withAsync*` functions: `withAsyncN`, `withAsyncOnN`,- `withAsyncWithUnmaskN`, and `withAsyncOnWithUnmaskN` (#148).--[concurrency-1.2.3.0]: https://github.com/barrucadu/dejafu/releases/tag/concurrency-1.2.3.0---------------------------------------------------------------------------------------------------------1.2.2.0----------- **Date** 2017-11-05-- **Git tag** [concurrency-1.2.2.0][]-- **Hackage** https://hackage.haskell.org/package/concurrency-1.2.2.0--### Control.Monad.Conc.Class--- A new `IsConc` type (and `toIsConc`, `fromIsConc` functions), where a value of type `IsConc m a`- can only be constructed if `m` has a `MonadConc` instance. Its `STM` type is `IsSTM (STM m)`.- (#144)--- The provided transformer instances now use the `modifyCRefCAS_` of the underlying monad, rather- than the default definition in terms of `modifyCRefCAS`.--### Control.Monad.STM.Class--- A new `IsSTM` type (and `toIsSTM`, `fromIsSTM` functions), where a value of type `IsSTM m a` can- only be constructed if `m` has a `MonadSTM` instance. (#144)--[concurrency-1.2.2.0]: https://github.com/barrucadu/dejafu/releases/tag/concurrency-1.2.2.0---------------------------------------------------------------------------------------------------------1.2.1.2----------- **Date** 2017-10-14-- **Git tag** [concurrency-1.2.1.2][]-- **Hackage** https://hackage.haskell.org/package/concurrency-1.2.1.2--### Control.Monad.Conc.Class--- Fixes an infinite loop introduced for the `IO` instance of `MonadConc` in `forkWithUnmask` and- `forkOnWithUnmask` in 1.2.1.1 (#134).--[concurrency-1.2.1.2]: https://github.com/barrucadu/dejafu/releases/tag/concurrency-1.2.1.2---------------------------------------------------------------------------------------------------------1.2.1.1----------- **Date** 2017-10-11-- **Git tag** [concurrency-1.2.1.1][]-- **Hackage** https://hackage.haskell.org/package/concurrency-1.2.1.1--### Control.Monad.Conc.Class--- The `IO` instance of `MonadConc` now names threads with `GHC.Conc.labelThread`, so thread names- now appear in debugging traces of normal execution.--[concurrency-1.2.1.1]: https://github.com/barrucadu/dejafu/releases/tag/concurrency-1.2.1.1---------------------------------------------------------------------------------------------------------1.2.1.0----------- **Date** 2017-10-02-- **Git tag** [concurrency-1.2.1.0][]-- **Hackage** https://hackage.haskell.org/package/concurrency-1.2.1.0--### Control.Concurrent.Classy.Async--- New named-thread variants of the `async*` functions: `asyncN`, `asyncOnN`, `asyncWithUnmaskN`, and- `asyncOnWithUnmaskN` (#125).--[concurrency-1.2.1.0]: https://github.com/barrucadu/dejafu/releases/tag/concurrency-1.2.1.0---------------------------------------------------------------------------------------------------------1.2.0.0----------- **Date** 2017-09-16-- **Git tag** [concurrency-1.2.0.0][]-- **Hackage** https://hackage.haskell.org/package/concurrency-1.2.0.0--### Control.Monad.STM.Class--- `MonadSTM` now has a `MonadPlus` constraint.-- The `orElse` and `retry` functions have been promoted to top-level definitions, and are aliases- for `mplus` and `mzero`.--[concurrency-1.2.0.0]: https://github.com/barrucadu/dejafu/releases/tag/concurrency-1.2.0.0---------------------------------------------------------------------------------------------------------1.1.2.1----------- **Date** 2017-06-07-- **Git tag** [concurrency-1.1.2.1][]-- **Hackage** https://hackage.haskell.org/package/concurrency-1.1.2.1--### Changed--- The `isEmptyMVar` function is now implemented using `tryReadMVar` instead of a combination of- `tryTakeMVar` and `putMVar`. It no longer modifies the contents of the `MVar` and can no longer- block.--### Miscellaneous--- There is now a changelog.--[concurrency-1.1.2.1]: https://github.com/barrucadu/dejafu/releases/tag/concurrency-1.1.2.1---------------------------------------------------------------------------------------------------------1.1.2.0----------- **Date** 2017-04-05-- **Git tag** [concurrency-1.1.2.0][]-- **Hackage** https://hackage.haskell.org/package/concurrency-1.1.2.0--### Control.Concurrent.Classy.Async--- New functions:- - `uninterruptibleCancel` function, which is `cancel` inside an- uninterruptible mask.- - `replicateConcurrently` function, which performs an action many- times in separate threads.- - `concurrently_`, `mapConcurrently_`, `forConcurrently_`, and- `replicateConcurrently_` functions, which discard the result of- the non-_ version.-- New instances:- - `Semigroup` instance for `Concurrently` when built with base 4.9.- - `Monoid` instance for `Concurrently`.--### Control.Monad.Conc.Class--- The `mask_` and `uninterruptibleMask_` functions from Control.Monad.Catch are now re-exported.--### Changed--- The `cancel` and the `withAsync` functions now block until the `Async` action terminates, to match- changes in the main async package.--### Miscellaneous--- Every definition, class, and instance now has a Haddock "@since" annotation.--[concurrency-1.1.2.0]: https://github.com/barrucadu/dejafu/releases/tag/concurrency-1.1.2.0---------------------------------------------------------------------------------------------------------1.1.1.0----------- **Date** 2017-03-04-- **Git tag** [concurrency-1.1.1.0][]-- **Hackage** https://hackage.haskell.org/package/concurrency-1.1.1.0--### Miscellaneous--- The async-dejafu package has been pulled into this package as the Control.Concurrent.Classy.Async- module. async-dejafu is now __deprecated__.--[concurrency-1.1.1.0]: https://github.com/barrucadu/dejafu/releases/tag/concurrency-1.1.1.0---------------------------------------------------------------------------------------------------------1.1.0.0----------- **Date** 2017-02-21-- **Git tag** [concurrency-1.1.0.0][]-- **Hackage** https://hackage.haskell.org/package/concurrency-1.1.0.0--### Control.Monad.Conc.Class--- The `MonadConc` class now defines `tryReadMVar`, a non-blocking version of `readMVar` akin to- `tryTakeMVar`.-- The `MonadConc` class no longer defines `_concMessage`, there is no alternative provided, it is- just gone.--[concurrency-1.1.0.0]: https://github.com/barrucadu/dejafu/releases/tag/concurrency-1.1.0.0---------------------------------------------------------------------------------------------------------1.0.0.0----------- **Date** 2016-09-10-- **Git tag** [concurrency-1.0.0.0][]-- **Hackage** https://hackage.haskell.org/package/concurrency-1.0.0.0--Initial release. Go read the API docs.--[concurrency-1.0.0.0]: https://github.com/barrucadu/dejafu/releases/tag/concurrency-1.0.0.0
+ CHANGELOG.rst view
@@ -0,0 +1,272 @@+Release Notes+=============++This project is versioned according to the PVP_, the *de facto*+standard Haskell versioning scheme.++.. _PVP: https://pvp.haskell.org/+++1.4.0.1 (2018-02-26)+--------------------++* Git: :tag:`concurrency-1.4.0.1`+* Hackage: :hackage:`concurrency-1.4.0.1`++Miscellaneous+~~~~~~~~~~~~~++* The upper bound on :hackage:`exceptions` is <0.10.+++1.4.0.0 (2018-01-19)+--------------------++* Git: :tag:`concurrency-1.4.0.0`+* Hackage: :hackage:`concurrency-1.4.0.0`++Changed+~~~~~~~++* ``Control.Monad.Conc.Class.peekTicket'`` has a more concrete type,+ to make deriving newtype instances of ``MonadConc`` possible:++ * Old: ``MonadConc m => proxy m -> Ticket m a -> a``+ * New: ``MonadConc m => Proxy m -> Ticket m a -> a``+++1.3.0.0 - The Bound Thread Release (2017-12-23)+-----------------------------------------------++* Git: :tag:`concurrency-1.3.0.0`+* Hackage: :hackage:`concurrency-1.3.0.0`++**Note:** bound threads are only supported if you compile with GHC and+link with -threaded.++Added+~~~~~++* (:pull:`145`) Bound thread variants of the ``withAsync`` functions:++ * ``Control.Concurrent.Classy.Async.asyncBound``+ * ``Control.Concurrent.Classy.Async.asyncBoundN``+ * ``Control.Concurrent.Classy.Async.withAsyncBound``+ * ``Control.Concurrent.Classy.Async.withAsyncBoundN``++* (:pull:`145`) Bound thread functions in ``MonadConc``:++ * ``Control.Monad.Conc.Class.forkOS``+ * ``Control.Monad.Conc.Class.forkOSN``+ * ``Control.Monad.Conc.Class.isCurrentThreadBound``++* (:pull:`145`) Helper functions for bound threads:++ * ``Control.Monad.Conc.Class.runInBoundThread``+ * ``Control.Monad.Conc.Class.runInUnboundThread``++Changed+~~~~~~~++* (:pull:`145`) ``Control.Monad.Conc.Class.rtsSupportsBoundThreads``+ is a re-export from ``Control.Concurrent``.+++1.2.3.0 (2017-11-30)+--------------------++* Git: :tag:`concurrency-1.2.3.0`+* Hackage: :hackage:`concurrency-1.2.3.0`++Added+~~~~~++* (:issue:`148`) Named thread variants of the ``withAsync`` functions:++ * ``Control.Concurrent.Classy.Async.withAsyncN``+ * ``Control.Concurrent.Classy.Async.withAsyncOnN``+ * ``Control.Concurrent.Classy.Async.withAsyncWithUnmaskN``+ * ``Control.Concurrent.Classy.Async.withAsyncOnWithUnmaskN``+++1.2.2.0 (2017-11-05)+--------------------++* Git: :tag:`concurrency-1.2.2.0`+* Hackage: :hackage:`concurrency-1.2.2.0`++Added+~~~~~++* (:issue:`144`) ``IsConc`` and ``IsSTM`` wrapper types:++ * ``Control.Monad.Conc.Class.IsConc`` (constructor unexported)+ * ``Control.Monad.Conc.Class.toIsConc``+ * ``Control.Monad.Conc.Class.fromIsConc``+ * ``Control.Monad.STM.Class.IsSTM`` (constructor unexported)+ * ``Control.Monad.STM.Class.toIsSTM``+ * ``Control.Monad.STM.Class.fromIsSTM``++Changed+~~~~~~~++* ``Control.Monad.Conc.Class.modifyCRefCAS_`` for transformer+ instances delegates to the underlying monad, rather than using the+ default definition in terms of ``modifyCRefCAS``.+++1.2.1.2 (2017-10-14)+--------------------++* Git: :tag:`concurrency-1.2.1.2`+* Hackage: :hackage:`concurrency-1.2.1.2`++Fixed+~~~~~++* (:issue:`134`) ``Control.Monad.Conc.Class.forkWithUnmask`` and+ ``forkOnWithUnmask`` for the ``IO`` instance does not infinitely+ loop (bug introduced in :tag:`concurrency-1.2.1.1`).+++1.2.1.1 (2017-10-11)+--------------------++* Git: :tag:`concurrency-1.2.1.1`+* Hackage: :hackage:`concurrency-1.2.1.1`++Changed+~~~~~~~++* Named threads for ``IO`` are implemented with+ ``GHC.Conc.labelThread``.+++1.2.1.0 (2017-10-02)+--------------------++* Git: :tag:`concurrency-1.2.1.0`+* Hackage: :hackage:`concurrency-1.2.1.0`++Added+~~~~~++* (:pull:`125`) Named thread variants of the ``async`` functions:++ * ``Control.Concurrent.Classy.Async.asyncN``+ * ``Control.Concurrent.Classy.Async.asyncOnN``+ * ``Control.Concurrent.Classy.Async.asyncWithUnmaskN``+ * ``Control.Concurrent.Classy.Async.asyncOnWithUnmaskN``+++1.2.0.0 (2017-09-16)+--------------------++* Git: :tag:`concurrency-1.2.0.0`+* Hackage: :hackage:`concurrency-1.2.0.0`++Changed+~~~~~~~++* ``MonadPlus`` is a superclass of ``MonadSTM``.++* ``Control.Monad.STM.Class.orElse`` is a top-level alias for+ ``mplus``.++* ``Control.Monad.STM.Class.retry`` is a top-level alias for+ ``mzero``.+++1.1.2.1 (2017-06-07)+--------------------++* Git: :tag:`concurrency-1.1.2.1`+* Hackage: :hackage:`concurrency-1.1.2.1`++Changed+~~~~~~~++* ``Control.Concurrent.Classy.MVar.isEmptyMVar`` does not briefly+ empties the ``MVar``, and does not block.+++1.1.2.0 (2017-04-05)+--------------------++* Git: :tag:`concurrency-1.1.2.0`+* Hackage: :hackage:`concurrency-1.1.2.0`++Added+~~~~~++* Missing functions copied from :hackage:`async`:++ * ``Control.Concurrent.Classy.Async.uninterruptibleCancel``+ * ``Control.Concurrent.Classy.Async.replicateConcurrently``+ * ``Control.Concurrent.Classy.Async.concurrently_``+ * ``Control.Concurrent.Classy.Async.mapConcurrently_``+ * ``Control.Concurrent.Classy.Async.forConcurrently_``+ * ``Control.Concurrent.Classy.Async.replicateConcurrently_``++* ``Control.Concurrent.Classy.Async.Concurrently`` has a ``Semigroup``+ instance when built with :hackage:`base` >= 4.9.++* ``Control.Concurrent.Classy.Async.Concurrently`` has a ``Monoid``+ instance.++* ``Control.Monad.Conc.Class`` re-exports+ ``Control.Monad.Catch.mask_`` and ``uninterruptibleMask_``.++Changed+~~~~~~~++* (:pull:`77`) To match changes in :hackage:`async`,+ ``Control.Concurrent.Classy.Async.cancel`` and ``withAsync`` block+ until the ``Async`` is killed.++Miscellaneous+~~~~~~~~~~~~~++* Every definition, class, and instance now has a Haddock ``@since``+ annotation.+++1.1.1.0 - The Async Release (2017-03-04)+----------------------------------------++* Git: :tag:`concurrency-1.1.1.0`+* Hackage: :hackage:`concurrency-1.1.1.0`++Added+~~~~~++* The ``Control.Concurrent.Classy.Async`` module.+++1.1.0.0 (2017-02-21)+--------------------++* Git: :tag:`concurrency-1.1.0.0`+* Hackage: :hackage:`concurrency-1.1.0.0`++Added+~~~~~++* ``Control.Monad.Conc.Class.tryReadMVar``++Removed+~~~~~~~++* ``Control.Monad.Conc.Class._concMessage``+++1.0.0.0 - The Initial Release (2016-09-10)+------------------------------------------++* Git: :tag:`concurrency-1.0.0.0`+* Hackage: :hackage:`concurrency-1.0.0.0`++Added+~~~~~++* Everything.
concurrency.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: concurrency-version: 1.4.0.0+version: 1.4.0.1 synopsis: Typeclasses, functions, and data types for concurrency and STM. description:@@ -22,7 +22,7 @@ copyright: (c) 2016--2017 Michael Walker category: Concurrency build-type: Simple-extra-source-files: README.markdown CHANGELOG.markdown+extra-source-files: README.markdown CHANGELOG.rst cabal-version: >=1.10 source-repository head@@ -32,7 +32,7 @@ source-repository this type: git location: https://github.com/barrucadu/dejafu.git- tag: concurrency-1.4.0.0+ tag: concurrency-1.4.0.1 library exposed-modules: Control.Monad.Conc.Class@@ -58,7 +58,7 @@ build-depends: base >=4.8 && <5 , array >=0.5 && <0.6 , atomic-primops >=0.8 && <0.9- , exceptions >=0.7 && <0.9+ , exceptions >=0.7 && <0.10 , monad-control >=1.0 && <1.1 , mtl >=2.2 && <2.3 , stm >=2.4 && <2.5