box 0.6.0 → 0.6.1
raw patch · 5 files changed
+18/−27 lines, 5 filesdep +numhask-spacedep ~numhask
Dependencies added: numhask-space
Dependency ranges changed: numhask
Files
- app/concurrency-tests.hs +0/−1
- box.cabal +6/−5
- src/Box/Box.hs +1/−1
- src/Box/Time.hs +4/−18
- stack.yaml +7/−2
app/concurrency-tests.hs view
@@ -21,7 +21,6 @@ import Control.Lens import Control.Monad.Conc.Class as C import NumHask.Prelude hiding (STM)-import System.Random import Test.DejaFu hiding (get) import Test.DejaFu.Types
box.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: box-version: 0.6.0+version: 0.6.1 synopsis: boxes description: concurrent, effectful boxes category: project@@ -54,7 +54,8 @@ exceptions >= 0.10, lens >= 4.19, mmorph >= 1.1,- numhask >= 0.6 && < 0.7,+ numhask >= 0.7 && < 0.8,+ numhask-space >= 0.7 && < 0.8, profunctors >= 5.5, text >= 1.2, time >= 1.9,@@ -73,7 +74,7 @@ dejafu >= 2.3, generic-lens >= 2.0, lens >= 4.19,- numhask >= 0.6 && < 0.7,+ numhask >= 0.7 && < 0.8, random >= 1.1, text >= 1.2, transformers >= 0.5@@ -108,7 +109,7 @@ generic-lens >= 2.0, lens >= 4.19, mtl >= 2.2,- numhask >= 0.6 && < 0.7,+ numhask >= 0.7 && < 0.8, optparse-generic >= 1.3.0 && < 1.4, text >= 1.2, transformers >= 0.5,@@ -136,7 +137,7 @@ base >=4.7 && <5, box, doctest >= 0.16,- numhask >= 0.6 && < 0.7,+ numhask >= 0.7 && < 0.8, default-language: Haskell2010 default-extensions: NegativeLiterals
src/Box/Box.hs view
@@ -114,7 +114,7 @@ loss :: p Void b instance (Applicative m) => Divap (Box m) where- divap split merge (Box lc le) (Box rc re) = Box (divide split lc rc) (liftA2 (curry merge) le re)+ divap split' merge (Box lc le) (Box rc re) = Box (divide split' lc rc) (liftA2 (curry merge) le re) conpur a = Box conquer (pure a)
src/Box/Time.hs view
@@ -24,31 +24,17 @@ import Control.Monad.Conc.Class as C import Data.Time import NumHask.Prelude hiding (STM, atomically)-import qualified Prelude as P+import NumHask.Space.Time -- | sleep for x seconds sleep :: (MonadConc m) => Double -> m ()-sleep x = C.threadDelay (fromIntegral (floor $ x * 1e6 :: Integer))+sleep x = C.threadDelay (floor $ x * 1e6) -- | sleep until a certain time (in the future) sleepUntil :: UTCTime -> IO () sleepUntil u = do t0 <- getCurrentTime- sleep (toDouble $ diffUTCTime u t0)--toDouble :: NominalDiffTime -> Double-toDouble t =- (/ 1000000000000.0) $- fromIntegral (P.floor $ t P.* 1000000000000 :: Integer)--fromDouble :: Double -> NominalDiffTime-fromDouble x =- let d0 = ModifiedJulianDay 0- days = floor (x / toDouble nominalDay)- secs = x - fromIntegral days * toDouble nominalDay- t0 = UTCTime d0 (picosecondsToDiffTime 0)- t1 = UTCTime (addDays days d0) (picosecondsToDiffTime $ floor (secs / 1.0e-12))- in diffUTCTime t1 t0+ sleep (fromNominalDiffTime $ diffUTCTime u t0) -- | A value with a UTCTime annotation. data Stamped a@@ -93,7 +79,7 @@ Just (l0, _) -> do t0 <- getCurrentTime let ua = diffLocalTime (utcToLocalTime utc t0) l0- let delta u = addLocalTime ua $ addLocalTime (fromDouble ((toDouble $ diffLocalTime u l0) * speed)) l0+ let delta u = addLocalTime ua $ addLocalTime (toNominalDiffTime ((fromNominalDiffTime $ diffLocalTime u l0) * speed)) l0 pure (mapE (\((l, a)) -> pure (Just ((delta l), a))) e) -- | simulate a delay from a (Stamped a) Emitter relative to the first timestamp
stack.yaml view
@@ -1,8 +1,13 @@-resolver: nightly-2020-06-25+resolver: nightly-2020-11-19 packages: - . extra-deps:- - numhask-0.6.0.2+ - numhask-0.7.0.0+ - protolude-0.3.0+ - random-1.2.0+ - splitmix-0.1.0.3+ - numhask-space-0.7.0.0 +allow-newer: true