Release Notes¶
This project is versioned according to the PVP, the de facto standard Haskell versioning scheme.
1.8.1.0 (2019-11-16)¶
- Git: tag concurrency-1.8.1.0
- Hackage: concurrency-1.8.1.0
Added¶
- (issue #303)
Control.Monad.Conc.Class.newTVarConc
, with a default implementation ofatomically . newTVar
.
1.8.0.0 (2019-10-04)¶
- Git: tag concurrency-1.8.0.0
- Hackage: concurrency-1.8.0.0
Added¶
MonadFail
instances forControl.Monad.Conc.Class.IsConc
andControl.Monad.STM.IsSTM
.
Changed¶
- Added
MonadFail
constraints toControl.Concurrent.Classy.QSem.newQSem
andControl.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: concurrency-1.7.0.0
Added¶
- The
Control.Monad.Conc.Class.supportsBoundThreads
function, likertsSupportsBoundThreads
but returns a monadic result.
Deprecated¶
Control.Monad.Conc.Class.rtsSupportsBoundThreads
, in favour ofsupportsBoundThreads
.
1.6.2.0 (2018-11-28)¶
- Git: tag concurrency-1.6.2.0
- Hackage: concurrency-1.6.2.0
Contributors: gip (pull request #289).
Added¶
- (pull request #289) The
Control.Concurrent.Classy.BoundedChan
module. - (pull request #289) The
Control.Concurrent.Classy.Lock
module. - (pull request #289) The
Control.Concurrent.Classy.RWLock
module.
1.6.1.0 (2018-09-23)¶
- Git: tag concurrency-1.6.1.0
- Hackage: concurrency-1.6.1.0
Added¶
(issue #286) Copy across additions from the 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 stm package:
- Make definition of
readTQueue
consistent withreadTBQueue
- Make definition of
Miscellaneous¶
- The upper bound on stm is <2.6.
1.6.0.0 - IORefs (2018-07-01)¶
- Git: tag concurrency-1.6.0.0
- Hackage: concurrency-1.6.0.0
Added¶
Control.Concurrent.Classy.CRef
, deprecated*CRef
functions and aCRef
alias.
Changed¶
- (issue #274)
CRef
is nowIORef
: 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: concurrency-1.5.0.0
Added¶
- (issue #132)
forkOSWithUnmask
inMonadConc
Changed¶
- (issue #132)
Control.Monad.Conc.Class.fork
,forkOn
,forkOS
, andforkOSN
are top-level definitions.
Miscellaneous¶
GHC 7.10 support is dropped. Dependency lower bounds are:
- base: 4.9
- array: 0.5.1
- transformers: 0.5
1.4.0.2 (2018-03-11)¶
- Git: tag concurrency-1.4.0.2
- Hackage: concurrency-1.4.0.2
Miscellaneous¶
- (pull request #245) The upper bound on exceptions is <0.11.
1.4.0.1 (2018-02-26)¶
- Git: tag concurrency-1.4.0.1
- Hackage: concurrency-1.4.0.1
Miscellaneous¶
- The upper bound on exceptions is <0.10.
1.4.0.0 (2018-01-19)¶
- Git: tag concurrency-1.4.0.0
- Hackage: concurrency-1.4.0.0
Changed¶
Control.Monad.Conc.Class.peekTicket'
has a more concrete type, to make deriving newtype instances ofMonadConc
possible:- Old:
MonadConc m => proxy m -> Ticket m a -> a
- New:
MonadConc m => Proxy m -> Ticket m a -> a
- Old:
1.3.0.0 - The Bound Thread Release (2017-12-23)¶
- Git: tag concurrency-1.3.0.0
- Hackage: concurrency-1.3.0.0
Note: bound threads are only supported if you compile with GHC and link with -threaded.
Added¶
(pull request #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 request #145) Bound thread functions in
MonadConc
:Control.Monad.Conc.Class.forkOS
Control.Monad.Conc.Class.forkOSN
Control.Monad.Conc.Class.isCurrentThreadBound
(pull request #145) Helper functions for bound threads:
Control.Monad.Conc.Class.runInBoundThread
Control.Monad.Conc.Class.runInUnboundThread
Changed¶
- (pull request #145)
Control.Monad.Conc.Class.rtsSupportsBoundThreads
is a re-export fromControl.Concurrent
.
1.2.3.0 (2017-11-30)¶
- Git: tag concurrency-1.2.3.0
- 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: concurrency-1.2.2.0
Added¶
(issue #144)
IsConc
andIsSTM
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 ofmodifyCRefCAS
.
1.2.1.2 (2017-10-14)¶
- Git: tag concurrency-1.2.1.2
- Hackage: concurrency-1.2.1.2
Fixed¶
- (issue #134)
Control.Monad.Conc.Class.forkWithUnmask
andforkOnWithUnmask
for theIO
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: concurrency-1.2.1.1
Changed¶
- Named threads for
IO
are implemented withGHC.Conc.labelThread
.
1.2.1.0 (2017-10-02)¶
- Git: tag concurrency-1.2.1.0
- Hackage: concurrency-1.2.1.0
Added¶
(pull request #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: concurrency-1.2.0.0
Changed¶
MonadPlus
is a superclass ofMonadSTM
.Control.Monad.STM.Class.orElse
is a top-level alias formplus
.Control.Monad.STM.Class.retry
is a top-level alias formzero
.
1.1.2.1 (2017-06-07)¶
- Git: tag concurrency-1.1.2.1
- Hackage: concurrency-1.1.2.1
Changed¶
Control.Concurrent.Classy.MVar.isEmptyMVar
does not briefly empties theMVar
, and does not block.
1.1.2.0 (2017-04-05)¶
- Git: tag concurrency-1.1.2.0
- Hackage: concurrency-1.1.2.0
Added¶
Missing functions copied from 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 aSemigroup
instance when built with base >= 4.9.Control.Concurrent.Classy.Async.Concurrently
has aMonoid
instance.Control.Monad.Conc.Class
re-exportsControl.Monad.Catch.mask_
anduninterruptibleMask_
.
Changed¶
- (pull request #77) To match changes in async,
Control.Concurrent.Classy.Async.cancel
andwithAsync
block until theAsync
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: 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: 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: concurrency-1.0.0.0
Added¶
- Everything.