mirror of
https://github.com/barrucadu/dejafu.git
synced 2024-11-25 20:13:55 +03:00
516 lines
11 KiB
ReStructuredText
516 lines
11 KiB
ReStructuredText
Release Notes
|
|
=============
|
|
|
|
This project is versioned according to the PVP_, the *de facto*
|
|
standard Haskell versioning scheme.
|
|
|
|
.. _PVP: https://pvp.haskell.org/
|
|
|
|
|
|
1.11.0.3 (2023-06-17)
|
|
---------------------
|
|
|
|
* Git: :tag:`concurrency-1.11.0.3`
|
|
* Hackage: :hackage:`concurrency-1.11.0.3`
|
|
|
|
Miscellaneous
|
|
~~~~~~~~~~~~~
|
|
|
|
* The upper bound on :hackage:`mtl` is <2.4.
|
|
* The upper bound on :hackage:`transformers` is <0.7.
|
|
|
|
|
|
1.11.0.2 (2021-08-15)
|
|
---------------------
|
|
|
|
* Git: :tag:`concurrency-1.11.0.2`
|
|
* Hackage: :hackage:`concurrency-1.11.0.2`
|
|
|
|
Miscellaneous
|
|
~~~~~~~~~~~~~
|
|
|
|
* Remove reference to freenode in README.
|
|
|
|
|
|
1.11.0.1 (2021-03-14)
|
|
---------------------
|
|
|
|
* Git: :tag:`concurrency-1.11.0.1`
|
|
* Hackage: :hackage:`concurrency-1.11.0.1`
|
|
|
|
Fixed
|
|
~~~~~
|
|
|
|
* (:issue:`334`) Compilation error under GHC 9 due to use of
|
|
``const``.
|
|
|
|
|
|
1.11.0.0 (2020-05-14)
|
|
---------------------
|
|
|
|
* Git: :tag:`concurrency-1.11.0.0`
|
|
* Hackage: :hackage:`concurrency-1.11.0.0`
|
|
|
|
**Contributors:** :u:`mitchellwrosen` (:pull:`319`).
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
* (:issue:`316`) ``Control.Monad.Conc.Class.unsafeUnmask``.
|
|
* ``Control.Monad.Conc.Class.interruptible``.
|
|
|
|
|
|
1.10.0.0 (2020-05-10)
|
|
---------------------
|
|
|
|
* Git: :tag:`concurrency-1.10.0.0`
|
|
* Hackage: :hackage:`concurrency-1.10.0.0`
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
* (:issue:`312`) ``Control.Monad.Conc.Class.getMaskingState``.
|
|
|
|
|
|
1.9.0.0 (2020-02-26)
|
|
--------------------
|
|
|
|
* Git: :tag:`concurrency-1.9.0.0`
|
|
* Hackage: :hackage:`concurrency-1.9.0.0`
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
* (:issue:`286`) Pulled in changes from :hackage:`stm-2.5.0.0` package:
|
|
|
|
* Changed ``newTBQueue`` to accept ``Natural`` as a size.
|
|
* Changed ``lengthTBQueue`` to return a ``Natural``.
|
|
|
|
|
|
1.8.1.0 (2019-11-16)
|
|
--------------------
|
|
|
|
* Git: :tag:`concurrency-1.8.1.0`
|
|
* Hackage: :hackage:`concurrency-1.8.1.0`
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
* (:issue:`303`) ``Control.Monad.Conc.Class.newTVarConc``, with a
|
|
default implementation of ``atomically . newTVar``.
|
|
|
|
|
|
1.8.0.0 (2019-10-04)
|
|
--------------------
|
|
|
|
* Git: :tag:`concurrency-1.8.0.0`
|
|
* Hackage: :hackage:`concurrency-1.8.0.0`
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
* ``MonadFail`` instances for ``Control.Monad.Conc.Class.IsConc`` and
|
|
``Control.Monad.STM.IsSTM``.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
* Added ``MonadFail`` constraints to
|
|
``Control.Concurrent.Classy.QSem.newQSem`` and
|
|
``Control.Concurrent.Classy.QSemN.newQSemN``.
|
|
|
|
Miscellaneous
|
|
~~~~~~~~~~~~~
|
|
|
|
* Fixed a compilation error with GHC 8.8
|
|
|
|
|
|
1.7.0.0 (2019-03-24)
|
|
--------------------
|
|
|
|
* Git: :tag:`concurrency-1.7.0.0`
|
|
* Hackage: :hackage:`concurrency-1.7.0.0`
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
* The ``Control.Monad.Conc.Class.supportsBoundThreads`` function, like
|
|
``rtsSupportsBoundThreads`` but returns a monadic result.
|
|
|
|
Deprecated
|
|
~~~~~~~~~~
|
|
|
|
* ``Control.Monad.Conc.Class.rtsSupportsBoundThreads``, in favour of
|
|
``supportsBoundThreads``.
|
|
|
|
|
|
1.6.2.0 (2018-11-28)
|
|
--------------------
|
|
|
|
* Git: :tag:`concurrency-1.6.2.0`
|
|
* Hackage: :hackage:`concurrency-1.6.2.0`
|
|
|
|
**Contributors:** :u:`gip` (:pull:`289`).
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
* (:pull:`289`) The ``Control.Concurrent.Classy.BoundedChan`` module.
|
|
* (:pull:`289`) The ``Control.Concurrent.Classy.Lock`` module.
|
|
* (:pull:`289`) The ``Control.Concurrent.Classy.RWLock`` module.
|
|
|
|
|
|
1.6.1.0 (2018-09-23)
|
|
--------------------
|
|
|
|
* Git: :tag:`concurrency-1.6.1.0`
|
|
* Hackage: :hackage:`concurrency-1.6.1.0`
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
* (:issue:`286`) Copy across additions from the :hackage:`stm` package:
|
|
|
|
* ``Control.Concurrent.Classy.STM.TQueue.flushTQueue``
|
|
* ``Control.Concurrent.Classy.STM.TBQueue.flushTBQueue``
|
|
* ``Control.Concurrent.Classy.STM.TBQueue.lengthTBQueue``
|
|
* ``Control.Concurrent.Classy.STM.TVar.stateTVar``
|
|
|
|
* (:issue:`287`) The ``Control.Concurrent.Classy.STM.TSem`` module.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
* (:issue:`286`) Copy across changes from the :hackage:`stm` package:
|
|
|
|
* Make definition of ``readTQueue`` consistent with ``readTBQueue``
|
|
* Performance improvements to ``peekTQueue`` and ``peekTBQueue``.
|
|
|
|
Miscellaneous
|
|
~~~~~~~~~~~~~
|
|
|
|
* The upper bound on :hackage:`stm` is <2.6.
|
|
|
|
|
|
1.6.0.0 - IORefs (2018-07-01)
|
|
-----------------------------
|
|
|
|
* Git: :tag:`concurrency-1.6.0.0`
|
|
* Hackage: :hackage:`concurrency-1.6.0.0`
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
* ``Control.Concurrent.Classy.CRef``, deprecated ``*CRef`` functions
|
|
and a ``CRef`` alias.
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
* (:issue:`274`) ``CRef`` is now ``IORef``: all functions, modules,
|
|
and types have been renamed.
|
|
|
|
|
|
1.5.0.0 - No More 7.10 (2018-03-28)
|
|
-----------------------------------
|
|
|
|
* Git: :tag:`concurrency-1.5.0.0`
|
|
* Hackage: :hackage:`concurrency-1.5.0.0`
|
|
|
|
Added
|
|
~~~~~
|
|
|
|
* (:issue:`132`) ``forkOSWithUnmask`` in ``MonadConc``
|
|
|
|
Changed
|
|
~~~~~~~
|
|
|
|
* (:issue:`132`) ``Control.Monad.Conc.Class.fork``, ``forkOn``,
|
|
``forkOS``, and ``forkOSN`` are top-level definitions.
|
|
|
|
Miscellaneous
|
|
~~~~~~~~~~~~~
|
|
|
|
* GHC 7.10 support is dropped. Dependency lower bounds are:
|
|
|
|
* :hackage:`base`: 4.9
|
|
* :hackage:`array`: 0.5.1
|
|
* :hackage:`transformers`: 0.5
|
|
|
|
|
|
1.4.0.2 (2018-03-11)
|
|
--------------------
|
|
|
|
* Git: :tag:`concurrency-1.4.0.2`
|
|
* Hackage: :hackage:`concurrency-1.4.0.2`
|
|
|
|
Miscellaneous
|
|
~~~~~~~~~~~~~
|
|
|
|
* (:pull:`245`) The upper bound on :hackage:`exceptions` is <0.11.
|
|
|
|
|
|
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.
|