packages feed

concurrency 1.7.0.0 → 1.8.0.0

raw patch · 6 files changed

+43/−6 lines, 6 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Control.Monad.Conc.Class: instance Control.Monad.Fail.MonadFail m => Control.Monad.Fail.MonadFail (Control.Monad.Conc.Class.IsConc m)
+ Control.Monad.STM.Class: instance Control.Monad.Fail.MonadFail m => Control.Monad.Fail.MonadFail (Control.Monad.STM.Class.IsSTM m)
- Control.Concurrent.Classy.QSem: newQSem :: MonadConc m => Int -> m (QSem m)
+ Control.Concurrent.Classy.QSem: newQSem :: (MonadConc m, MonadFail m) => Int -> m (QSem m)
- Control.Concurrent.Classy.QSemN: newQSemN :: MonadConc m => Int -> m (QSemN m)
+ Control.Concurrent.Classy.QSemN: newQSemN :: (MonadConc m, MonadFail m) => Int -> m (QSemN m)

Files

CHANGELOG.rst view
@@ -7,6 +7,31 @@ .. _PVP: https://pvp.haskell.org/  +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) -------------------- 
Control/Concurrent/Classy/QSem.hs view
@@ -17,6 +17,7 @@  import           Control.Concurrent.Classy.QSemN import           Control.Monad.Conc.Class        (MonadConc)+import           Control.Monad.Fail              (MonadFail)  -- | @QSem@ is a quantity semaphore in which the resource is acquired -- and released in units of one. It provides guaranteed FIFO ordering@@ -35,7 +36,7 @@ -- quantity must be at least 0. -- -- @since 1.0.0.0-newQSem :: MonadConc m => Int -> m (QSem m)+newQSem :: (MonadConc m, MonadFail m) => Int -> m (QSem m) newQSem initial   | initial < 0 = fail "newQSem: Initial quantity mus tbe non-negative."   | otherwise   = QSem <$> newQSemN initial
Control/Concurrent/Classy/QSemN.hs view
@@ -20,6 +20,7 @@ import           Control.Monad.Catch            (mask_, onException,                                                  uninterruptibleMask_) import           Control.Monad.Conc.Class       (MonadConc)+import           Control.Monad.Fail             (MonadFail) import           Data.Maybe  -- | 'QSemN' is a quantity semaphore in which the resource is aqcuired@@ -39,7 +40,7 @@ --  The initial quantity must be at least 0. -- -- @since 1.0.0.0-newQSemN :: MonadConc m => Int -> m (QSemN m)+newQSemN :: (MonadConc m, MonadFail m) => Int -> m (QSemN m) newQSemN initial   | initial < 0 = fail "newQSemN: Initial quantity must be non-negative"   | otherwise   = QSemN <$> newMVar (initial, [], [])
Control/Monad/Conc/Class.hs view
@@ -4,6 +4,7 @@ {-# LANGUAGE PolyKinds #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TypeFamilies #-}  -- |@@ -12,7 +13,7 @@ -- License     : MIT -- Maintainer  : Michael Walker <mike@barrucadu.co.uk> -- Stability   : experimental--- Portability : CPP, FlexibleContexts, PolyKinds, RankNTypes, ScopedTypeVariables, TypeFamilies+-- Portability : CPP, FlexibleContexts, PolyKinds, RankNTypes, ScopedTypeVariables, StandaloneDeriving, TypeFamilies -- -- This module captures in a typeclass the interface of concurrency -- monads.@@ -94,6 +95,7 @@ import           Control.Monad.Catch          (MonadCatch, MonadMask,                                                MonadThrow) import qualified Control.Monad.Catch          as Ca+import           Control.Monad.Fail           (MonadFail(..)) import           Control.Monad.STM.Class      (IsSTM, MonadSTM, TVar, fromIsSTM,                                                readTVar) import           Control.Monad.Trans.Control  (MonadTransControl, StT, liftWith)@@ -790,6 +792,9 @@ -- @since 1.2.2.0 newtype IsConc m a = IsConc { unIsConc :: m a }   deriving (Functor, Applicative, Monad, MonadThrow, MonadCatch, MonadMask)++-- | @since 1.8.0.0+deriving instance MonadFail m => MonadFail (IsConc m)  -- | Wrap an @m a@ value inside an @IsConc@ if @m@ has a @MonadConc@ -- instance.
Control/Monad/STM/Class.hs view
@@ -1,6 +1,7 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE RankNTypes #-}+{-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TypeFamilies #-}  -- |@@ -9,7 +10,7 @@ -- License     : MIT -- Maintainer  : Michael Walker <mike@barrucadu.co.uk> -- Stability   : experimental--- Portability : CPP, RankNTypes, TemplateHaskell, TypeFamilies+-- Portability : CPP, RankNTypes, StandaloneDeriving, TemplateHaskell, TypeFamilies -- -- This module provides an abstraction over 'STM', which can be used -- with 'MonadConc'.@@ -62,6 +63,7 @@ import           Control.Applicative          (Alternative(..)) import           Control.Exception            (Exception) import           Control.Monad                (MonadPlus(..), unless)+import           Control.Monad.Fail           (MonadFail(..)) import           Control.Monad.Reader         (ReaderT) import           Control.Monad.Trans          (lift) import           Control.Monad.Trans.Identity (IdentityT)@@ -184,6 +186,9 @@ -- @since 1.2.2.0 newtype IsSTM m a = IsSTM { unIsSTM :: m a }   deriving (Functor, Applicative, Alternative, Monad, MonadPlus, Ca.MonadThrow, Ca.MonadCatch)++-- | @since 1.8.0.0+deriving instance MonadFail m => MonadFail (IsSTM m)  -- | Wrap an @m a@ value inside an @IsSTM@ if @m@ has a @MonadSTM@ -- instance.
concurrency.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/  name:                concurrency-version:             1.7.0.0+version:             1.8.0.0 synopsis:            Typeclasses, functions, and data types for concurrency and STM.  description:@@ -32,7 +32,7 @@ source-repository this   type:     git   location: https://github.com/barrucadu/dejafu.git-  tag:      concurrency-1.7.0.0+  tag:      concurrency-1.8.0.0  library   exposed-modules:     Control.Monad.Conc.Class