monad-schedule 0.2 → 0.2.0.1
raw patch · 5 files changed
+20/−7 lines, 5 filesdep +base-compatdep ~basesetup-changed
Dependencies added: base-compat
Dependency ranges changed: base
Files
- CHANGELOG.md +4/−0
- Setup.hs +2/−0
- monad-schedule.cabal +6/−2
- src/Control/Monad/Schedule/Class.hs +4/−2
- test/FreeAsync.hs +4/−3
CHANGELOG.md view
@@ -1,5 +1,9 @@ # Revision history for monad-schedule +## 0.2.0.1++* Compatibility with GHC 9.10+ ## 0.2 * Added FreeAsync
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
monad-schedule.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: monad-schedule-version: 0.2+version: 0.2.0.1 license: MIT license-file: LICENSE author: Manuel Bärenz@@ -22,6 +22,7 @@ GHC == 9.4.5 GHC == 9.6.2 GHC == 9.8.1+ GHC == 9.10.1 source-repository head type: git@@ -29,7 +30,8 @@ common deps build-depends:- , base >=4.16.0 && <4.20.0+ , base >=4.16.0 && <4.21.0+ , base-compat ^>=0.13 , free >=5.1 && < 5.3 , stm ^>=2.5 , time-domain ^>=0.1@@ -75,6 +77,8 @@ , time >=1.9 default-language: Haskell2010++ ghc-options: -threaded flag dev description: Enable warnings as errors. Active on ci.
src/Control/Monad/Schedule/Class.hs view
@@ -18,9 +18,11 @@ import Data.Function import Data.Functor.Identity import Data.List.NonEmpty hiding (length)-import qualified Data.List.NonEmpty as NonEmpty import Prelude hiding (map, zip) +-- base-compat+import Data.Functor.Compat (unzip)+ -- transformers import Control.Monad.Trans.Accum import Control.Monad.Trans.Class@@ -191,7 +193,7 @@ (NonEmpty (a, w), [m (a, w)]) -> ((NonEmpty a, [AccumT w m a]), w) collectWritesAndWrap (finished, running) =- let (as, logs) = NonEmpty.unzip finished+ let (as, logs) = Data.Functor.Compat.unzip finished in ((as, AccumT . const <$> running), fold logs) {- | Schedule all actions according to @m@ and in case of exceptions
test/FreeAsync.hs view
@@ -64,14 +64,15 @@ runFreeAsync $ replicateM_ 100 $ freeAsync $ threadDelay 1000 after <- getCurrentTime let diff = after `diffUTCTime` before- assert $ diff >= 0.1 && diff < 0.2+ print diff+ assert $ diff >= 0.1 && diff < 0.3 , testCase "Scheduling does things in parallel" $ do before <- getCurrentTime runFreeAsync $ scheduleAndFinish $ fromList $ replicate 100 $ freeAsync $ threadDelay 1000 after <- getCurrentTime let diff = after `diffUTCTime` before print diff- assert $ diff > 0.001 && diff <= 0.005 -- Assume overhead is at most 5x at ms durations+ assert $ diff > 0.001 && diff <= 0.01 -- Assume overhead is at most 10x at ms durations , testGroup "ConcurrentlyT" [ testCase "Sequencing does things in parallel" $ do@@ -80,7 +81,7 @@ after <- getCurrentTime let diff = after `diffUTCTime` before print diff- assert $ diff > 0.001 && diff <= 0.005 -- Assume overhead is at most 5x at ms durations+ assert $ diff > 0.001 && diff <= 0.01 -- Assume overhead is at most 10x at ms durations ] ]