packages feed

reactive-banana 0.8.1.1 → 0.8.1.2

raw patch · 3 files changed

+20/−11 lines, 3 filesdep +psqueuesdep −pqueuePVP ok

version bump matches the API change (PVP)

Dependencies added: psqueues

Dependencies removed: pqueue

API changes (from Hackage documentation)

Files

CHANGELOG.md view
@@ -1,6 +1,13 @@ Changelog for the `reactive-banana` package ------------------------------------------- +**version 0.8.1.2**++* Depend on the [psqueues][] package instead of the [pqueue][] package for the priority queue.++  [psqueues]: https://hackage.haskell.org/package/psqueues+  [pqueue]: http://hackage.haskell.org/package/pqueue+ **version 0.8.1.1**  * Links to the Haskell wiki now point to the `http://wiki.haskell.org` subdomain.
reactive-banana.cabal view
@@ -1,5 +1,5 @@ Name:                reactive-banana-Version:             0.8.1.1+Version:             0.8.1.2 Synopsis:            Library for functional reactive programming (FRP). Description:     Reactive-banana is a library for Functional Reactive Programming (FRP).@@ -67,7 +67,7 @@      build-depends:      unordered-containers >= 0.2.1.0 && < 0.3,                         hashable >= 1.1 && < 1.3,-                        pqueue >= 1.0 && < 1.3+                        psqueues >= 0.2 && < 0.3  --      CPP-options:    -DUseExtensions         @@ -106,4 +106,4 @@                         test-framework >= 0.6 && < 0.9,                         test-framework-hunit >= 0.2 && < 0.4,                         reactive-banana, vault, containers, transformers,-                        unordered-containers, hashable, pqueue+                        unordered-containers, hashable, psqueues
src/Reactive/Banana/Prim/Dependencies.hs view
@@ -17,7 +17,7 @@ import qualified Data.HashMap.Strict        as Map import qualified Data.HashSet               as Set import           Data.Hashable-import qualified Data.PQueue.Prio.Min       as Q+import qualified Data.IntPSQ                as Q  import           Reactive.Banana.Prim.Order import qualified Reactive.Banana.Prim.Order as Order@@ -114,21 +114,23 @@                 Children -> go $ insertList (children deps a) q2  -- | Queue for traversing dependencies.-data DepsQueue a = DQ !(Q.MinPQueue Level a) !(Set a)+--+-- The 'Int' is a key supply for the priority search queue.+data DepsQueue a = DQ !(Q.IntPSQ Level a) !(Set a) Int  emptyQ :: DepsQueue a-emptyQ = DQ Q.empty Set.empty+emptyQ = DQ Q.empty Set.empty 0  insert :: (Eq a, Hashable a) => Level -> a -> DepsQueue a -> DepsQueue a-insert k a q@(DQ queue seen) = {-# SCC insert #-}+insert k a q@(DQ queue seen n) = {-# SCC insert #-}     if a `Set.member` seen         then q-        else DQ (Q.insert k a queue) (Set.insert a seen)+        else DQ (Q.insert (n+1) k a queue) (Set.insert a seen) (n+1)  minView :: DepsQueue a -> Maybe (a, DepsQueue a)-minView (DQ queue seen) = {-# SCC minView #-} case Q.minView queue of-    Nothing          -> Nothing-    Just (a, queue2) -> Just (a, DQ queue2 seen)+minView (DQ queue seen n) = {-# SCC minView #-} case Q.minView queue of+    Nothing                -> Nothing+    Just (_, _, a, queue2) -> Just (a, DQ queue2 seen n)  {-----------------------------------------------------------------------------     Small tests