packages feed

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 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         ]     ]