packages feed

aivika 5.7 → 5.8

raw patch · 7 files changed

+62/−5 lines, 7 filesdep ~exceptionsPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: exceptions

API changes (from Hackage documentation)

- Simulation.Aivika.Internal.Event: instance Data.Semigroup.Semigroup Simulation.Aivika.Internal.Event.DisposableEvent
- Simulation.Aivika.Results: instance Data.Semigroup.Semigroup Simulation.Aivika.Results.ResultSignal
- Simulation.Aivika.Results: instance Data.Semigroup.Semigroup Simulation.Aivika.Results.Results
- Simulation.Aivika.Signal: instance (GHC.Base.Monoid a, Data.Semigroup.Semigroup a) => GHC.Base.Monoid (Simulation.Aivika.Signal.Signalable a)
- Simulation.Aivika.Signal: instance Data.Semigroup.Semigroup (Simulation.Aivika.Signal.Signal a)
- Simulation.Aivika.Signal: instance Data.Semigroup.Semigroup a => Data.Semigroup.Semigroup (Simulation.Aivika.Signal.Signalable a)
- Simulation.Aivika.Statistics: instance (Simulation.Aivika.Statistics.TimingData a, GHC.Show.Show a) => GHC.Show.Show (Simulation.Aivika.Statistics.TimingCounter a)
- Simulation.Aivika.Statistics: instance Simulation.Aivika.Statistics.SamplingData a => Data.Semigroup.Semigroup (Simulation.Aivika.Statistics.SamplingStats a)
- Simulation.Aivika.Stream: instance Data.Semigroup.Semigroup (Simulation.Aivika.Stream.Stream a)
+ Simulation.Aivika.Internal.Event: instance GHC.Base.Semigroup Simulation.Aivika.Internal.Event.DisposableEvent
+ Simulation.Aivika.Results: instance GHC.Base.Semigroup Simulation.Aivika.Results.ResultSignal
+ Simulation.Aivika.Results: instance GHC.Base.Semigroup Simulation.Aivika.Results.Results
+ Simulation.Aivika.Signal: instance (GHC.Base.Monoid a, GHC.Base.Semigroup a) => GHC.Base.Monoid (Simulation.Aivika.Signal.Signalable a)
+ Simulation.Aivika.Signal: instance GHC.Base.Semigroup (Simulation.Aivika.Signal.Signal a)
+ Simulation.Aivika.Signal: instance GHC.Base.Semigroup a => GHC.Base.Semigroup (Simulation.Aivika.Signal.Signalable a)
+ Simulation.Aivika.Statistics: instance (GHC.Show.Show a, Simulation.Aivika.Statistics.TimingData a) => GHC.Show.Show (Simulation.Aivika.Statistics.TimingCounter a)
+ Simulation.Aivika.Statistics: instance Simulation.Aivika.Statistics.SamplingData a => GHC.Base.Semigroup (Simulation.Aivika.Statistics.SamplingStats a)
+ Simulation.Aivika.Stream: instance GHC.Base.Semigroup (Simulation.Aivika.Stream.Stream a)
- Simulation.Aivika.Channel: Channel :: (Signal a -> Composite (Signal b)) -> Channel a b
+ Simulation.Aivika.Channel: Channel :: Signal a -> Composite (Signal b) -> Channel a b
- Simulation.Aivika.Circuit: Circuit :: (a -> Event (b, Circuit a b)) -> Circuit a b
+ Simulation.Aivika.Circuit: Circuit :: a -> Event (b, Circuit a b) -> Circuit a b
- Simulation.Aivika.Generator: Generator :: (Double -> Double -> IO Double) -> (Int -> Int -> IO Int) -> (Double -> Double -> Double -> IO Double) -> (Double -> Double -> IO Double) -> (Double -> Double -> IO Double) -> (Double -> IO Double) -> (Double -> Int -> IO Double) -> (Double -> IO Int) -> (Double -> Int -> IO Int) -> (Double -> Double -> IO Double) -> (Double -> Double -> IO Double) -> (Double -> Double -> IO Double) -> (forall a. DiscretePDF a -> IO a) -> IO Int -> Generator
+ Simulation.Aivika.Generator: Generator :: Double -> Double -> IO Double -> Int -> Int -> IO Int -> Double -> Double -> Double -> IO Double -> Double -> Double -> IO Double -> Double -> Double -> IO Double -> Double -> IO Double -> Double -> Int -> IO Double -> Double -> IO Int -> Double -> Int -> IO Int -> Double -> Double -> IO Double -> Double -> Double -> IO Double -> Double -> Double -> IO Double -> forall a. DiscretePDF a -> IO a -> IO Int -> Generator
- Simulation.Aivika.Net: Net :: (a -> Process (b, Net a b)) -> Net a b
+ Simulation.Aivika.Net: Net :: a -> Process (b, Net a b) -> Net a b
- Simulation.Aivika.Processor: Processor :: (Stream a -> Stream b) -> Processor a b
+ Simulation.Aivika.Processor: Processor :: Stream a -> Stream b -> Processor a b
- Simulation.Aivika.Results.Locale: ResultLocalisation :: (ResultId -> ResultDescription) -> (ResultId -> ResultDescription) -> ResultLocalisation
+ Simulation.Aivika.Results.Locale: ResultLocalisation :: ResultId -> ResultDescription -> ResultId -> ResultDescription -> ResultLocalisation
- Simulation.Aivika.Results.Locale.Types: ResultLocalisation :: (ResultId -> ResultDescription) -> (ResultId -> ResultDescription) -> ResultLocalisation
+ Simulation.Aivika.Results.Locale.Types: ResultLocalisation :: ResultId -> ResultDescription -> ResultId -> ResultDescription -> ResultLocalisation
- Simulation.Aivika.Signal: Signal :: ((a -> Event ()) -> Event DisposableEvent) -> Signal a
+ Simulation.Aivika.Signal: Signal :: (a -> Event ()) -> Event DisposableEvent -> Signal a
- Simulation.Aivika.Transform: Transform :: (Dynamics a -> Simulation (Dynamics b)) -> Transform a b
+ Simulation.Aivika.Transform: Transform :: Dynamics a -> Simulation (Dynamics b) -> Transform a b

Files

CHANGELOG.md view
@@ -1,4 +1,9 @@ +Version 5.8+-----++* Satisfying a new requirement of the MonadMask class type.+ Version 5.7 ----- 
Simulation/Aivika/Internal/Dynamics.hs view
@@ -209,6 +209,18 @@   invokeDynamics p (a $ q u)   where q u (Dynamics b) = Dynamics (u . b) +-- | An implementation of 'generalBracket'.+generalBracketDynamics :: Dynamics a+                          -> (a -> MC.ExitCase b -> Dynamics c)+                          -> (a -> Dynamics b)+                          -> Dynamics (b, c)+generalBracketDynamics acquire release use =+  Dynamics $ \p -> do+    MC.generalBracket+      (invokeDynamics p acquire)+      (\resource e -> invokeDynamics p $ release resource e)+      (\resource -> invokeDynamics p $ use resource)+ -- | Invoke the 'Dynamics' computation. invokeDynamics :: Point -> Dynamics a -> IO a {-# INLINE invokeDynamics #-}@@ -228,6 +240,7 @@ instance MC.MonadMask Dynamics where   mask = maskDynamics   uninterruptibleMask = uninterruptibleMaskDynamics+  generalBracket = generalBracketDynamics  -- | Computation that returns the current simulation time. time :: Dynamics Double
Simulation/Aivika/Internal/Event.hs view
@@ -180,6 +180,18 @@   invokeEvent p (a $ q u)   where q u (Event b) = Event (u . b) +-- | An implementation of 'generalBracket'.+generalBracketEvent :: Event a+                       -> (a -> MC.ExitCase b -> Event c)+                       -> (a -> Event b)+                       -> Event (b, c)+generalBracketEvent acquire release use =+  Event $ \p -> do+    MC.generalBracket+      (invokeEvent p acquire)+      (\resource e -> invokeEvent p $ release resource e)+      (\resource -> invokeEvent p $ use resource)+ -- | Invoke the 'Event' computation. invokeEvent :: Point -> Event a -> IO a {-# INLINE invokeEvent #-}@@ -199,6 +211,7 @@ instance MC.MonadMask Event where   mask = maskEvent   uninterruptibleMask = uninterruptibleMaskEvent+  generalBracket = generalBracketEvent  -- | Defines how the events are processed. data EventProcessing = CurrentEvents
Simulation/Aivika/Internal/Parameter.hs view
@@ -220,6 +220,18 @@   invokeParameter r (a $ q u)   where q u (Parameter b) = Parameter (u . b) +-- | An implementation of 'generalBracket'.+generalBracketParameter :: Parameter a+                           -> (a -> MC.ExitCase b -> Parameter c)+                           -> (a -> Parameter b)+                           -> Parameter (b, c)+generalBracketParameter acquire release use =+  Parameter $ \r -> do+    MC.generalBracket+      (invokeParameter r acquire)+      (\resource e -> invokeParameter r $ release resource e)+      (\resource -> invokeParameter r $ use resource)+ -- | Invoke the 'Parameter' computation. invokeParameter :: Run -> Parameter a -> IO a {-# INLINE invokeParameter #-}@@ -239,6 +251,7 @@ instance MC.MonadMask Parameter where   mask = maskParameter   uninterruptibleMask = uninterruptibleMaskParameter+  generalBracket = generalBracketParameter    -- | Memoize the 'Parameter' computation, always returning the same value -- within a simulation run. However, the value will be recalculated for other
Simulation/Aivika/Internal/Simulation.hs view
@@ -180,6 +180,18 @@   invokeSimulation r (a $ q u)   where q u (Simulation b) = Simulation (u . b) +-- | An implementation of 'generalBracket'.+generalBracketSimulation :: Simulation a+                            -> (a -> MC.ExitCase b -> Simulation c)+                            -> (a -> Simulation b)+                            -> Simulation (b, c)+generalBracketSimulation acquire release use =+  Simulation $ \r -> do+    MC.generalBracket+      (invokeSimulation r acquire)+      (\resource e -> invokeSimulation r $ release resource e)+      (\resource -> invokeSimulation r $ use resource)+ -- | Invoke the 'Simulation' computation. invokeSimulation :: Run -> Simulation a -> IO a {-# INLINE invokeSimulation #-}@@ -199,6 +211,7 @@ instance MC.MonadMask Simulation where   mask = maskSimulation   uninterruptibleMask = uninterruptibleMaskSimulation+  generalBracket = generalBracketSimulation  -- | Memoize the 'Simulation' computation, always returning the same value -- within a simulation run.
Simulation/Aivika/Vector/Unboxed.hs view
@@ -175,7 +175,7 @@      forM_ [index, index + 1 .. count - 2] $ \i ->        do x <- readArray array (i + 1)           writeArray array i x-     writeArray array (count - 1) undefined+     -- writeArray array (count - 1) undefined      writeIORef (vectorCountRef vector) (count - 1)  -- | Delete the specified range of elements.@@ -203,8 +203,8 @@      forM_ [index, index + 1 .. (count - len) - 1] $ \i ->        do x <- readArray array (i + len)           writeArray array i x-     forM_ [(count - len) .. count - 1] $ \i ->-       writeArray array i undefined+     -- forM_ [(count - len) .. count - 1] $ \i ->+     --   writeArray array i undefined      writeIORef (vectorCountRef vector) (count - len)       -- | Return the index of the item or -1.     
aivika.cabal view
@@ -1,5 +1,5 @@ name:            aivika-version:         5.7+version:         5.8 synopsis:        A multi-method simulation library description:     Aivika is a discrete event simulation (DES) framework with support of activity-oriented,@@ -240,7 +240,7 @@                      deepseq >= 1.1.0.0,                      binary >= 0.6.4.0,                      semigroups >= 0.10,-                     exceptions >= 0.6+                     exceptions >= 0.9.0      other-extensions:   FlexibleContexts,                         FlexibleInstances,