packages feed

stm-hamt 1.2.0.14 → 1.2.1

raw patch · 4 files changed

+68/−48 lines, 4 filesdep ~primitive-extrasPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: primitive-extras

API changes (from Hackage documentation)

+ StmHamt.Hamt: listTNonAtomic :: Hamt a -> ListT IO a

Files

library/StmHamt/Hamt.hs view
@@ -12,6 +12,7 @@     reset,     unfoldlM,     listT,+    listTNonAtomic,   ) where @@ -124,6 +125,9 @@  listT :: Hamt a -> ListT STM a listT = ListT.hamtElements++listTNonAtomic :: Hamt a -> ListT IO a+listTNonAtomic = ListT.hamtElementsNonAtomic  null :: Hamt a -> STM Bool null (Hamt branchSsaVar) = do
library/StmHamt/ListT.hs view
@@ -9,10 +9,21 @@ hamtElements :: Hamt a -> ListT STM a hamtElements (Hamt var) = tVarValue var >>= By6Bits.elementsListT >>= branchElements +hamtElementsNonAtomic :: Hamt a -> ListT IO a+hamtElementsNonAtomic (Hamt var) = tVarValueIO var >>= By6Bits.elementsListT >>= branchElementsNonAtomic+ branchElements :: Branch a -> ListT STM a branchElements = \case   LeavesBranch _ array -> SmallArray.elementsListT array   BranchesBranch hamt -> hamtElements hamt +branchElementsNonAtomic :: Branch a -> ListT IO a+branchElementsNonAtomic = \case+  LeavesBranch _ array -> SmallArray.elementsListT array+  BranchesBranch hamt -> hamtElementsNonAtomic hamt+ tVarValue :: TVar a -> ListT STM a tVarValue var = lift (readTVar var)++tVarValueIO :: TVar a -> ListT IO a+tVarValueIO var = lift (readTVarIO var)
stm-hamt.cabal view
@@ -1,7 +1,7 @@ cabal-version: 3.0-name:          stm-hamt-version:       1.2.0.14-synopsis:      STM-specialised Hash Array Mapped Trie+name: stm-hamt+version: 1.2.1+synopsis: STM-specialised Hash Array Mapped Trie description:   A low-level data-structure,   which can be used to implement higher-level interfaces like@@ -9,20 +9,18 @@   Such implementations are presented by the   <http://hackage.haskell.org/package/stm-containers stm-containers>. -category:      Data Structures, STM, Concurrency-homepage:      https://github.com/nikita-volkov/stm-hamt-bug-reports:   https://github.com/nikita-volkov/stm-hamt/issues-author:        Nikita Volkov <nikita.y.volkov@mail.ru>-maintainer:    Nikita Volkov <nikita.y.volkov@mail.ru>-copyright:     (c) 2016, Nikita Volkov-license:       MIT-license-file:  LICENSE+category: Data Structures, STM, Concurrency+homepage: https://github.com/nikita-volkov/stm-hamt+bug-reports: https://github.com/nikita-volkov/stm-hamt/issues+author: Nikita Volkov <nikita.y.volkov@mail.ru>+maintainer: Nikita Volkov <nikita.y.volkov@mail.ru>+copyright: (c) 2016, Nikita Volkov+license: MIT+license-file: LICENSE  common base-  default-language:   Haskell2010+  default-language: Haskell2010   default-extensions:-    NoImplicitPrelude-    NoMonomorphismRestriction     Arrows     BangPatterns     BinaryLiterals@@ -45,6 +43,8 @@     MagicHash     MultiParamTypeClasses     MultiWayIf+    NoImplicitPrelude+    NoMonomorphismRestriction     OverloadedStrings     ParallelListComp     PatternGuards@@ -60,8 +60,8 @@     UnboxedTuples  library-  import:          base-  hs-source-dirs:  library+  import: base+  hs-source-dirs: library   exposed-modules:     StmHamt.Hamt     StmHamt.SizedHamt@@ -76,46 +76,50 @@     StmHamt.UnfoldlM    build-depends:-    , base >=4.9 && <5-    , deferred-folds >=0.9 && <0.10-    , focus >=1 && <1.1-    , hashable >=1.4.0.0 && <2-    , list-t >=1.0.1 && <1.1-    , primitive >=0.7 && <0.10-    , primitive-extras >=0.10 && <0.11-    , transformers >=0.5 && <0.7+    base >=4.9 && <5,+    deferred-folds >=0.9 && <0.10,+    focus >=1 && <1.1,+    hashable >=1.4.0.0 && <2,+    list-t >=1.0.1 && <1.1,+    primitive >=0.7 && <0.10,+    primitive-extras >=0.10.2 && <0.11,+    transformers >=0.5 && <0.7,  test-suite test-  import:         base-  type:           exitcode-stdio-1.0+  import: base+  type: exitcode-stdio-1.0   hs-source-dirs: test-  main-is:        Main.hs+  main-is: Main.hs   other-modules:     Main.Gens     Main.Transaction    build-depends:-    , deferred-folds-    , focus-    , QuickCheck >=2.8.1 && <3-    , quickcheck-instances >=0.3.11 && <0.4-    , rerebase <2-    , stm-hamt-    , tasty >=0.12 && <2-    , tasty-hunit >=0.9 && <0.11-    , tasty-quickcheck >=0.9 && <0.11+    QuickCheck >=2.8.1 && <3,+    deferred-folds,+    focus,+    quickcheck-instances >=0.3.11 && <0.4,+    rerebase <2,+    stm-hamt,+    tasty >=0.12 && <2,+    tasty-hunit >=0.9 && <0.11,+    tasty-quickcheck >=0.9 && <0.11,  benchmark concurrent-insertion-bench-  import:         base-  type:           exitcode-stdio-1.0+  import: base+  type: exitcode-stdio-1.0   hs-source-dirs: concurrent-insertion-bench-  ghc-options:    -O2 -threaded -with-rtsopts=-N-  main-is:        Main.hs+  ghc-options:+    -O2+    -threaded+    -with-rtsopts=-N++  main-is: Main.hs   build-depends:-    , async >=2.0 && <3-    , criterion >=1.5 && <1.7-    , focus-    , free >=4.5 && <6-    , random >=1.2 && <2-    , rebase <2-    , stm-hamt+    async >=2.0 && <3,+    criterion >=1.5 && <1.7,+    focus,+    free >=4.5 && <6,+    random >=1.2 && <2,+    rebase <2,+    stm-hamt,
test/Main/Transaction.hs view
@@ -8,7 +8,8 @@ import qualified StmHamt.Hamt as StmHamt import Prelude -data Transaction = forall result.+data Transaction+  = forall result.   (Show result, Eq result) =>   Transaction   { name :: Text,