Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ghc-stm-chans for openSUSE:Factory checked in at 2021-11-11 21:37:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-stm-chans (Old) and /work/SRC/openSUSE:Factory/.ghc-stm-chans.new.1890 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-stm-chans" Thu Nov 11 21:37:00 2021 rev:12 rq:930364 version:3.0.0.6 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-stm-chans/ghc-stm-chans.changes 2020-12-22 11:46:29.321864019 +0100 +++ /work/SRC/openSUSE:Factory/.ghc-stm-chans.new.1890/ghc-stm-chans.changes 2021-11-11 21:37:24.092931516 +0100 @@ -1,0 +2,10 @@ +Tue Oct 19 07:22:20 UTC 2021 - [email protected] + +- Update stm-chans to version 3.0.0.6. + 3.0.0.6 (2021-10-17): + - Removed old __HADDOCK__ hack + - Updating stale emails, urls, etc + 3.0.0.5 (2021-10-16): + - Fixed the cabal file for Cabal >1.24 + +------------------------------------------------------------------- Old: ---- stm-chans-3.0.0.4.tar.gz stm-chans.cabal New: ---- stm-chans-3.0.0.6.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-stm-chans.spec ++++++ --- /var/tmp/diff_new_pack.Hlsi76/_old 2021-11-11 21:37:25.040932207 +0100 +++ /var/tmp/diff_new_pack.Hlsi76/_new 2021-11-11 21:37:25.044932210 +0100 @@ -1,7 +1,7 @@ # # spec file for package ghc-stm-chans # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,13 +18,12 @@ %global pkg_name stm-chans Name: ghc-%{pkg_name} -Version: 3.0.0.4 +Version: 3.0.0.6 Release: 0 Summary: Additional types of channels for STM License: BSD-3-Clause URL: https://hackage.haskell.org/package/%{pkg_name} Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz -Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal#/%{pkg_name}.cabal BuildRequires: ghc-Cabal-devel BuildRequires: ghc-rpm-macros BuildRequires: ghc-stm-devel @@ -45,7 +44,6 @@ %prep %autosetup -n %{pkg_name}-%{version} -cp -p %{SOURCE1} %{pkg_name}.cabal %build %ghc_lib_build @@ -63,6 +61,6 @@ %license LICENSE %files devel -f %{name}-devel.files -%doc AUTHORS CHANGELOG README +%doc AUTHORS CHANGELOG README.md %changelog ++++++ stm-chans-3.0.0.4.tar.gz -> stm-chans-3.0.0.6.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stm-chans-3.0.0.4/CHANGELOG new/stm-chans-3.0.0.6/CHANGELOG --- old/stm-chans-3.0.0.4/CHANGELOG 2015-05-30 07:58:32.000000000 +0200 +++ new/stm-chans-3.0.0.6/CHANGELOG 2001-09-09 03:46:40.000000000 +0200 @@ -1,3 +1,8 @@ +3.0.0.6 (2021-10-17): + - Removed old __HADDOCK__ hack + - Updating stale emails, urls, etc +3.0.0.5 (2021-10-16): + - Fixed the cabal file for Cabal >1.24 3.0.0.4 (2015-05-30): - Moved VERSION to CHANGELOG 3.0.0.3 (2015-03-29): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stm-chans-3.0.0.4/README new/stm-chans-3.0.0.6/README --- old/stm-chans-3.0.0.4/README 2015-05-30 07:58:32.000000000 +0200 +++ new/stm-chans-3.0.0.6/README 1970-01-01 01:00:00.000000000 +0100 @@ -1,24 +0,0 @@ -stm-chans -========= - -In general, this is a simple package and should be easy to install. -It does require GHC however, because it relies on the -Control.Concurrent.STM.TChan type which (for some unknown reason) -is GHC-only. With the cabal-install program you can just do: - - $> cabal install stm-chans - -Or if you don't have cabal-install, then you can use the Cabal -library: - - $> runhaskell Setup.hs configure - $> runhaskell Setup.hs build - $> runhaskell Setup.hs test - $> runhaskell Setup.hs haddock --hyperlink-source - $> runhaskell Setup.hs copy - $> runhaskell Setup.hs register - -The test step is optional and currently does nothing. The Haddock -step is also optional. - ------------------------------------------------------------ fin. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stm-chans-3.0.0.4/README.md new/stm-chans-3.0.0.6/README.md --- old/stm-chans-3.0.0.4/README.md 1970-01-01 01:00:00.000000000 +0100 +++ new/stm-chans-3.0.0.6/README.md 2001-09-09 03:46:40.000000000 +0200 @@ -0,0 +1,42 @@ +stm-chans +========= +[](https://hackage.haskell.org/package/stm-chans) +[](https://github.com/wrengr/stm-chans/actions?query=workflow%3Aci) +[](http://packdeps.haskellers.com/specific?package=stm-chans) + +This package offers a collection of channel types, similar to +`Control.Concurrent.STM.{TChan,TQueue}` but with additional features. +In particular we offer the following data types: + +* `Control.Concurrent.STM.TBChan`: Bounded FIFO channels. + When the channel is full, writers will block/retry. This ensures + that the writers do not get too far ahead of the readers, which + helps to make sure that memory and cpu resources are used + responsibly. +* `Control.Concurrent.STM.TMChan`: Closeable FIFO channels. +* `Control.Concurrent.STM.TMQueue`: Closeable FIFO queues. + Like `TChan (Maybe a)` but with a monotonicity guarantee that + once `Nothing` is returned all future reads will be `Nothing` + as well. +* `Control.Concurrent.STM.TBMChan`: Bounded Closeable FIFO channels. +* `Control.Concurrent.STM.TBMQueue`: Bounded Closeable FIFO queues. + Combines the capabilities of `TBChan` and `TMChan`. + + +## Install + +In general, this is a simple package and should be easy to install. +It does require GHC however, because it relies on the +Control.Concurrent.STM.TChan type which (for some unknown reason) +is GHC-only. With the cabal-install program you can just do: + + $> cabal install stm-chans + + +## Links + +* [Website](http://wrengr.org/) +* [Blog](http://winterkoninkje.dreamwidth.org/) +* [Twitter](https://twitter.com/wrengr) +* [Hackage](http://hackage.haskell.org/package/stm-chans) +* [GitHub](https://github.com/wrengr/stm-chans) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stm-chans-3.0.0.4/Setup.hs new/stm-chans-3.0.0.6/Setup.hs --- old/stm-chans-3.0.0.4/Setup.hs 2015-05-30 07:58:32.000000000 +0200 +++ new/stm-chans-3.0.0.6/Setup.hs 2001-09-09 03:46:40.000000000 +0200 @@ -1,27 +1,7 @@ #!/usr/bin/env runhaskell --- Cf. <http://www.mail-archive.com/[email protected]/msg59984.html> --- <http://www.haskell.org/pipermail/haskell-cafe/2008-December/051785.html> -{-# OPTIONS_GHC -Wall -fwarn-tabs -fno-warn-missing-signatures #-} module Main (main) where import Distribution.Simple -import Distribution.Simple.LocalBuildInfo (withPrograms) -import Distribution.Simple.Program (userSpecifyArgs) ----------------------------------------------------------------- --- | Define __HADDOCK__ when building documentation. main :: IO () -main = defaultMainWithHooks - $ simpleUserHooks `modify_haddockHook` \oldHH pkg lbi hooks flags -> do - - -- Call the old haddockHook with a modified LocalBuildInfo - (\lbi' -> oldHH pkg lbi' hooks flags) - $ lbi `modify_withPrograms` \oldWP -> - userSpecifyArgs "haddock" ["--optghc=-D__HADDOCK__"] oldWP - - -modify_haddockHook hooks f = hooks { haddockHook = f (haddockHook hooks) } -modify_withPrograms lbi f = lbi { withPrograms = f (withPrograms lbi) } - ----------------------------------------------------------------- ------------------------------------------------------------ fin. +main = defaultMain diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stm-chans-3.0.0.4/src/Control/Concurrent/STM/TBChan.hs new/stm-chans-3.0.0.6/src/Control/Concurrent/STM/TBChan.hs --- old/stm-chans-3.0.0.4/src/Control/Concurrent/STM/TBChan.hs 2015-05-30 07:58:32.000000000 +0200 +++ new/stm-chans-3.0.0.6/src/Control/Concurrent/STM/TBChan.hs 2001-09-09 03:46:40.000000000 +0200 @@ -1,28 +1,16 @@ {-# OPTIONS_GHC -Wall -fwarn-tabs #-} {-# LANGUAGE CPP, DeriveDataTypeable #-} --- HACK: in GHC 7.10, Haddock complains about Control.Monad.STM and --- System.IO.Unsafe being imported but unused. However, if we use --- CPP to avoid including them under Haddock, then it will fail to --- compile! -#ifdef __HADDOCK__ -{-# OPTIONS_GHC -fno-warn-unused-imports #-} -#endif - #if __GLASGOW_HASKELL__ >= 701 -# ifdef __HADDOCK__ -{-# LANGUAGE Trustworthy #-} -# else {-# LANGUAGE Safe #-} -# endif #endif ---------------------------------------------------------------- --- 2015.03.29 +-- 2021.10.17 -- | -- Module : Control.Concurrent.STM.TBChan --- Copyright : Copyright (c) 2011--2015 wren gayle romano +-- Copyright : Copyright (c) 2011--2021 wren gayle romano -- License : BSD --- Maintainer : [email protected] +-- Maintainer : [email protected] -- Stability : provisional -- Portability : non-portable (GHC STM, DeriveDataTypeable) -- @@ -61,12 +49,6 @@ import Control.Monad.STM (STM, retry) import Control.Concurrent.STM.TVar import Control.Concurrent.STM.TChan -- N.B., GHC only - --- N.B., we need a Custom cabal build-type for this to work. -#ifdef __HADDOCK__ -import Control.Monad.STM (atomically) -import System.IO.Unsafe (unsafePerformIO) -#endif ---------------------------------------------------------------- -- | @TBChan@ is an abstract type representing a bounded FIFO @@ -96,8 +78,9 @@ -- | @IO@ version of 'newTBChan'. This is useful for creating --- top-level @TBChan@s using 'unsafePerformIO', because using --- 'atomically' inside 'unsafePerformIO' isn't possible. +-- top-level @TBChan@s using 'System.IO.Unsafe.unsafePerformIO', +-- because using 'Control.Monad.STM.atomically' inside +-- 'System.IO.Unsafe.unsafePerformIO' isn't possible. newTBChanIO :: Int -> IO (TBChan a) newTBChanIO n = do slots <- newTVarIO n @@ -205,15 +188,15 @@ -- | Returns @True@ if the supplied @TBChan@ is empty (i.e., has --- no elements). /N.B./, a @TBChan@ can be both ``empty'' and --- ``full'' at the same time, if the initial limit was non-positive. +-- no elements). /N.B./, a @TBChan@ can be both \"empty\" and +-- \"full\" at the same time, if the initial limit was non-positive. isEmptyTBChan :: TBChan a -> STM Bool isEmptyTBChan (TBChan _slots _reads chan) = isEmptyTChan chan -- | Returns @True@ if the supplied @TBChan@ is full (i.e., is over --- its limit). /N.B./, a @TBChan@ can be both ``empty'' and ``full'' +-- its limit). /N.B./, a @TBChan@ can be both \"empty\" and \"full\" -- at the same time, if the initial limit was non-positive. /N.B./, -- a @TBChan@ may still be full after reading, if 'unGetTBChan' was -- used to go over the initial limit. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stm-chans-3.0.0.4/src/Control/Concurrent/STM/TBMChan.hs new/stm-chans-3.0.0.6/src/Control/Concurrent/STM/TBMChan.hs --- old/stm-chans-3.0.0.4/src/Control/Concurrent/STM/TBMChan.hs 2015-05-30 07:58:32.000000000 +0200 +++ new/stm-chans-3.0.0.6/src/Control/Concurrent/STM/TBMChan.hs 2001-09-09 03:46:40.000000000 +0200 @@ -1,28 +1,16 @@ {-# OPTIONS_GHC -Wall -fwarn-tabs #-} {-# LANGUAGE CPP, DeriveDataTypeable #-} --- HACK: in GHC 7.10, Haddock complains about Control.Monad.STM and --- System.IO.Unsafe being imported but unused. However, if we use --- CPP to avoid including them under Haddock, then it will fail to --- compile! -#ifdef __HADDOCK__ -{-# OPTIONS_GHC -fno-warn-unused-imports #-} -#endif - #if __GLASGOW_HASKELL__ >= 701 -# ifdef __HADDOCK__ -{-# LANGUAGE Trustworthy #-} -# else {-# LANGUAGE Safe #-} -# endif #endif ---------------------------------------------------------------- --- 2015.03.29 +-- 2021.10.17 -- | -- Module : Control.Concurrent.STM.TBMChan --- Copyright : Copyright (c) 2011--2015 wren gayle romano +-- Copyright : Copyright (c) 2011--2021 wren gayle romano -- License : BSD --- Maintainer : [email protected] +-- Maintainer : [email protected] -- Stability : provisional -- Portability : non-portable (GHC STM, DeriveDataTypeable) -- @@ -69,12 +57,6 @@ import Control.Monad.STM (STM, retry) import Control.Concurrent.STM.TVar import Control.Concurrent.STM.TChan -- N.B., GHC only - --- N.B., we need a Custom cabal build-type for this to work. -#ifdef __HADDOCK__ -import Control.Monad.STM (atomically) -import System.IO.Unsafe (unsafePerformIO) -#endif ---------------------------------------------------------------- -- | @TBMChan@ is an abstract type representing a bounded closeable @@ -107,8 +89,9 @@ -- | @IO@ version of 'newTBMChan'. This is useful for creating --- top-level @TBMChan@s using 'unsafePerformIO', because using --- 'atomically' inside 'unsafePerformIO' isn't possible. +-- top-level @TBMChan@s using 'System.IO.Unsafe.unsafePerformIO', +-- because using 'Control.Monad.STM.atomically' inside +-- 'System.IO.Unsafe.unsafePerformIO' isn't possible. newTBMChanIO :: Int -> IO (TBMChan a) newTBMChanIO n = do closed <- newTVarIO False @@ -136,7 +119,7 @@ x <- readTChan chan modifyTVar' reads (1 +) return (Just x) -{- +{- -- The above is slightly optimized over the clearer: readTBMChan (TBMChan closed _slots reads chan) = b <- readTVar closed @@ -173,7 +156,7 @@ Just _x -> do modifyTVar' reads (1 +) return (Just mx) -{- +{- -- The above is slightly optimized over the clearer: tryReadTBMChan (TBMChan closed _slots reads chan) = b <- readTVar closed @@ -208,7 +191,7 @@ peekTBMChan (TBMChan closed _slots _reads chan) = do b <- isEmptyTChan chan b' <- readTVar closed - if b && b' + if b && b' then return Nothing else Just <$> peekTChan chan -- TODO: compare Core and benchmarks; is the loss of clarity worth it? @@ -230,7 +213,7 @@ tryPeekTBMChan (TBMChan closed _slots _reads chan) = do b <- isEmptyTChan chan b' <- readTVar closed - if b && b' + if b && b' then return Nothing else Just <$> tryPeekTChan chan -- TODO: compare Core and benchmarks; is the loss of clarity worth it? @@ -310,16 +293,16 @@ -- | Returns @True@ if the supplied @TBMChan@ is empty (i.e., has --- no elements). /N.B./, a @TBMChan@ can be both ``empty'' and --- ``full'' at the same time, if the initial limit was non-positive. +-- no elements). /N.B./, a @TBMChan@ can be both \"empty\" and +-- \"full\" at the same time, if the initial limit was non-positive. isEmptyTBMChan :: TBMChan a -> STM Bool isEmptyTBMChan (TBMChan _closed _slots _reads chan) = isEmptyTChan chan -- | Returns @True@ if the supplied @TBMChan@ is full (i.e., is --- over its limit). /N.B./, a @TBMChan@ can be both ``empty'' and --- ``full'' at the same time, if the initial limit was non-positive. +-- over its limit). /N.B./, a @TBMChan@ can be both \"empty\" and +-- \"full\" at the same time, if the initial limit was non-positive. -- /N.B./, a @TBMChan@ may still be full after reading, if -- 'unGetTBMChan' was used to go over the initial limit. -- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stm-chans-3.0.0.4/src/Control/Concurrent/STM/TBMQueue.hs new/stm-chans-3.0.0.6/src/Control/Concurrent/STM/TBMQueue.hs --- old/stm-chans-3.0.0.4/src/Control/Concurrent/STM/TBMQueue.hs 2015-05-30 07:58:32.000000000 +0200 +++ new/stm-chans-3.0.0.6/src/Control/Concurrent/STM/TBMQueue.hs 2001-09-09 03:46:40.000000000 +0200 @@ -1,28 +1,16 @@ {-# OPTIONS_GHC -Wall -fwarn-tabs #-} {-# LANGUAGE CPP, DeriveDataTypeable #-} --- HACK: in GHC 7.10, Haddock complains about Control.Monad.STM and --- System.IO.Unsafe being imported but unused. However, if we use --- CPP to avoid including them under Haddock, then it will fail to --- compile! -#ifdef __HADDOCK__ -{-# OPTIONS_GHC -fno-warn-unused-imports #-} -#endif - #if __GLASGOW_HASKELL__ >= 701 -# ifdef __HADDOCK__ -{-# LANGUAGE Trustworthy #-} -# else {-# LANGUAGE Safe #-} -# endif #endif ---------------------------------------------------------------- --- 2015.03.29 +-- 2021.10.17 -- | -- Module : Control.Concurrent.STM.TBMQueue --- Copyright : Copyright (c) 2011--2015 wren gayle romano +-- Copyright : Copyright (c) 2011--2021 wren gayle romano -- License : BSD --- Maintainer : [email protected] +-- Maintainer : [email protected] -- Stability : provisional -- Portability : non-portable (GHC STM, DeriveDataTypeable) -- @@ -67,12 +55,6 @@ import Control.Monad.STM (STM, retry) import Control.Concurrent.STM.TVar import Control.Concurrent.STM.TQueue -- N.B., GHC only - --- N.B., we need a Custom cabal build-type for this to work. -#ifdef __HADDOCK__ -import Control.Monad.STM (atomically) -import System.IO.Unsafe (unsafePerformIO) -#endif ---------------------------------------------------------------- -- | @TBMQueue@ is an abstract type representing a bounded closeable @@ -105,8 +87,9 @@ -- | @IO@ version of 'newTBMQueue'. This is useful for creating --- top-level @TBMQueue@s using 'unsafePerformIO', because using --- 'atomically' inside 'unsafePerformIO' isn't possible. +-- top-level @TBMQueue@s using 'System.IO.Unsafe.unsafePerformIO', +-- because using 'Control.Monad.STM.atomically' inside +-- 'System.IO.Unsafe.unsafePerformIO' isn't possible. newTBMQueueIO :: Int -> IO (TBMQueue a) newTBMQueueIO n = do closed <- newTVarIO False @@ -308,16 +291,16 @@ -- | Returns @True@ if the supplied @TBMQueue@ is empty (i.e., has --- no elements). /N.B./, a @TBMQueue@ can be both ``empty'' and --- ``full'' at the same time, if the initial limit was non-positive. +-- no elements). /N.B./, a @TBMQueue@ can be both \"empty\" and +-- \"full\" at the same time, if the initial limit was non-positive. isEmptyTBMQueue :: TBMQueue a -> STM Bool isEmptyTBMQueue (TBMQueue _closed _slots _reads queue) = isEmptyTQueue queue -- | Returns @True@ if the supplied @TBMQueue@ is full (i.e., is --- over its limit). /N.B./, a @TBMQueue@ can be both ``empty'' and --- ``full'' at the same time, if the initial limit was non-positive. +-- over its limit). /N.B./, a @TBMQueue@ can be both \"empty\" and +-- \"full\" at the same time, if the initial limit was non-positive. -- /N.B./, a @TBMQueue@ may still be full after reading, if -- 'unGetTBMQueue' was used to go over the initial limit. -- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stm-chans-3.0.0.4/src/Control/Concurrent/STM/TMChan.hs new/stm-chans-3.0.0.6/src/Control/Concurrent/STM/TMChan.hs --- old/stm-chans-3.0.0.4/src/Control/Concurrent/STM/TMChan.hs 2015-05-30 07:58:32.000000000 +0200 +++ new/stm-chans-3.0.0.6/src/Control/Concurrent/STM/TMChan.hs 2001-09-09 03:46:40.000000000 +0200 @@ -1,28 +1,16 @@ {-# OPTIONS_GHC -Wall -fwarn-tabs #-} {-# LANGUAGE CPP, DeriveDataTypeable #-} --- HACK: in GHC 7.10, Haddock complains about Control.Monad.STM and --- System.IO.Unsafe being imported but unused. However, if we use --- CPP to avoid including them under Haddock, then it will fail to --- compile! -#ifdef __HADDOCK__ -{-# OPTIONS_GHC -fno-warn-unused-imports #-} -#endif - #if __GLASGOW_HASKELL__ >= 701 -# ifdef __HADDOCK__ -{-# LANGUAGE Trustworthy #-} -# else {-# LANGUAGE Safe #-} -# endif #endif ---------------------------------------------------------------- --- 2015.03.29 +-- 2021.10.17 -- | -- Module : Control.Concurrent.STM.TMChan --- Copyright : Copyright (c) 2011--2015 wren gayle romano +-- Copyright : Copyright (c) 2011--2021 wren gayle romano -- License : BSD --- Maintainer : [email protected] +-- Maintainer : [email protected] -- Stability : provisional -- Portability : non-portable (GHC STM, DeriveDataTypeable) -- @@ -63,12 +51,6 @@ import Control.Monad.STM (STM) import Control.Concurrent.STM.TVar import Control.Concurrent.STM.TChan -- N.B., GHC only - --- N.B., we need a Custom cabal build-type for this to work. -#ifdef __HADDOCK__ -import Control.Monad.STM (atomically) -import System.IO.Unsafe (unsafePerformIO) -#endif ---------------------------------------------------------------- -- | @TMChan@ is an abstract type representing a closeable FIFO @@ -88,14 +70,15 @@ -- | @IO@ version of 'newTMChan'. This is useful for creating --- top-level @TMChan@s using 'unsafePerformIO', because using --- 'atomically' inside 'unsafePerformIO' isn't possible. +-- top-level @TMChan@s using 'System.IO.Unsafe.unsafePerformIO', +-- because using 'Control.Monad.STM.atomically' inside +-- 'System.IO.Unsafe.unsafePerformIO' isn't possible. newTMChanIO :: IO (TMChan a) newTMChanIO = do closed <- newTVarIO False chan <- newTChanIO return (TMChan closed chan) - + -- | Like 'newBroadcastTChan'. -- @@ -105,7 +88,7 @@ closed <- newTVar False chan <- newBroadcastTChan return (TMChan closed chan) - + -- | @IO@ version of 'newBroadcastTMChan'. -- @@ -188,7 +171,7 @@ peekTMChan (TMChan closed chan) = do b <- isEmptyTChan chan b' <- readTVar closed - if b && b' + if b && b' then return Nothing else Just <$> peekTChan chan -- TODO: compare Core and benchmarks; is the loss of clarity worth it? @@ -210,7 +193,7 @@ tryPeekTMChan (TMChan closed chan) = do b <- isEmptyTChan chan b' <- readTVar closed - if b && b' + if b && b' then return Nothing else Just <$> tryPeekTChan chan -- TODO: compare Core and benchmarks; is the loss of clarity worth it? diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stm-chans-3.0.0.4/src/Control/Concurrent/STM/TMQueue.hs new/stm-chans-3.0.0.6/src/Control/Concurrent/STM/TMQueue.hs --- old/stm-chans-3.0.0.4/src/Control/Concurrent/STM/TMQueue.hs 2015-05-30 07:58:32.000000000 +0200 +++ new/stm-chans-3.0.0.6/src/Control/Concurrent/STM/TMQueue.hs 2001-09-09 03:46:40.000000000 +0200 @@ -1,28 +1,16 @@ {-# OPTIONS_GHC -Wall -fwarn-tabs #-} {-# LANGUAGE CPP, DeriveDataTypeable #-} --- HACK: in GHC 7.10, Haddock complains about Control.Monad.STM and --- System.IO.Unsafe being imported but unused. However, if we use --- CPP to avoid including them under Haddock, then it will fail to --- compile! -#ifdef __HADDOCK__ -{-# OPTIONS_GHC -fno-warn-unused-imports #-} -#endif - #if __GLASGOW_HASKELL__ >= 701 -# ifdef __HADDOCK__ -{-# LANGUAGE Trustworthy #-} -# else {-# LANGUAGE Safe #-} -# endif #endif ---------------------------------------------------------------- --- 2015.03.29 +-- 2021.10.17 -- | -- Module : Control.Concurrent.STM.TMQueue --- Copyright : Copyright (c) 2011--2015 wren gayle romano +-- Copyright : Copyright (c) 2011--2021 wren gayle romano -- License : BSD --- Maintainer : [email protected] +-- Maintainer : [email protected] -- Stability : provisional -- Portability : non-portable (GHC STM, DeriveDataTypeable) -- @@ -62,12 +50,6 @@ import Control.Monad.STM (STM) import Control.Concurrent.STM.TVar import Control.Concurrent.STM.TQueue -- N.B., GHC only - --- N.B., we need a Custom cabal build-type for this to work. -#ifdef __HADDOCK__ -import Control.Monad.STM (atomically) -import System.IO.Unsafe (unsafePerformIO) -#endif ---------------------------------------------------------------- -- | @TMQueue@ is an abstract type representing a closeable FIFO @@ -87,8 +69,9 @@ -- | @IO@ version of 'newTMQueue'. This is useful for creating --- top-level @TMQueue@s using 'unsafePerformIO', because using --- 'atomically' inside 'unsafePerformIO' isn't possible. +-- top-level @TMQueue@s using 'System.IO.Unsafe.unsafePerformIO', +-- because using 'Control.Monad.STM.atomically' inside +-- 'System.IO.Unsafe.unsafePerformIO' isn't possible. newTMQueueIO :: IO (TMQueue a) newTMQueueIO = do closed <- newTVarIO False diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stm-chans-3.0.0.4/stm-chans.cabal new/stm-chans-3.0.0.6/stm-chans.cabal --- old/stm-chans-3.0.0.4/stm-chans.cabal 2015-05-30 07:58:32.000000000 +0200 +++ new/stm-chans-3.0.0.6/stm-chans.cabal 2001-09-09 03:46:40.000000000 +0200 @@ -1,20 +1,19 @@ ---------------------------------------------------------------- --- wren gayle romano <[email protected]> ~ 2015.05.30 +-- wren gayle romano <[email protected]> ~ 2021.10.17 ---------------------------------------------------------------- --- By and large Cabal >=1.2 is fine; but >= 1.6 gives tested-with: --- and source-repository:. -Cabal-Version: >= 1.6 --- We need a custom build in order to define __HADDOCK__ -Build-Type: Custom +-- Cabal >=1.10 is required by Hackage. +Cabal-Version: >= 1.10 +Build-Type: Simple Name: stm-chans -Version: 3.0.0.4 +Version: 3.0.0.6 Stability: provisional -Homepage: http://code.haskell.org/~wren/ +Homepage: https://wrengr.org/software/hackage.html +Bug-Reports: https://github.com/wrengr/stm-chans/issues Author: wren gayle romano, Thomas DuBuisson -Maintainer: [email protected] -Copyright: Copyright (c) 2011--2015 wren gayle romano +Maintainer: [email protected] +Copyright: Copyright (c) 2011???2021 wren gayle romano License: BSD3 License-File: LICENSE @@ -22,17 +21,28 @@ Synopsis: Additional types of channels for STM. Description: Additional types of channels for STM. --- Should probably still work with GHC-7.6.1 too -Tested-With: - GHC ==7.8.3, GHC ==7.10.1 Extra-source-files: - AUTHORS, README, CHANGELOG + AUTHORS, README.md, CHANGELOG + +-- This used to be tested on 7.8.3 and 7.10.1, but we don't verify that by CI. +-- <https://github.com/wrengr/stm-chans/actions?query=workflow%3Aci> +Tested-With: + GHC ==8.0.2, + GHC ==8.2.2, + GHC ==8.4.4, + GHC ==8.6.5, + GHC ==8.8.4, + GHC ==8.10.3, + GHC ==9.0.1 + +---------------------------------------------------------------- Source-Repository head - Type: darcs - Location: http://community.haskell.org/~wren/stm-chans + Type: git + Location: https://github.com/wrengr/stm-chans.git ---------------------------------------------------------------- Library + Default-Language: Haskell2010 -- N.B., the following versions are required for: -- * stm >= 2.4: T{,B}Queue and newBroadcastTChan{,IO} -- * stm >= 2.3.0: fast tryReadTChan, peekTChan, tryPeekTChan,
