packages feed

ttrie 0.1.2 → 0.1.2.1

raw patch · 6 files changed

+24/−24 lines, 6 filesdep ~QuickCheckdep ~test-frameworkdep ~test-framework-quickcheck2

Dependency ranges changed: QuickCheck, test-framework, test-framework-quickcheck2

Files

README.md view
@@ -7,4 +7,4 @@ This is an implementation of the *transactional trie*, which is basically a *lock-free concurrent hash trie* lifted into STM. For a detailed discussion, including an evaluation of its performance,-see Chapter 4 of [my master's thesis](https://github.com/mcschroeder/thesis).+see Chapter 3 of [my master's thesis](https://github.com/mcschroeder/thesis).
benchmarks/Bench.hs view
@@ -181,20 +181,13 @@  instance (NFData a) => NFData (TVar a) -hashmapPrefill :: PrefillFunc (TVar (HashMap.HashMap Key (TVar ())))+hashmapPrefill :: PrefillFunc (TVar (HashMap.HashMap Key ())) hashmapPrefill ks = do-  elems <- forM ks (\k -> newTVarIO () >>= \v -> return (k,v))-  m <- newTVarIO $ HashMap.fromList elems+  let m = HashMap.fromList $ zip ks $ repeat ()   evaluate (rnf m)-  return m+  newTVarIO m -hashmapEval :: EvalFunc (TVar (HashMap.HashMap Key (TVar ())))-hashmapEval Lookup k m = do-  v <- HashMap.lookup k <$> readTVar m-  case v of-    Just v -> void $ readTVar v-    Nothing -> return ()-hashmapEval Insert k m = do-  v <- newTVar ()-  modifyTVar' m (HashMap.insert k v)+hashmapEval :: EvalFunc (TVar (HashMap.HashMap Key ()))+hashmapEval Lookup k m = void $ HashMap.lookup k <$> readTVar m+hashmapEval Insert k m = modifyTVar' m (HashMap.insert k ()) hashmapEval Delete k m = modifyTVar' m (HashMap.delete k)
benchmarks/run.sh view
@@ -13,11 +13,11 @@     bench $THREADS $NUM_TX "[(1,1)]" $NUM_TX "(0,0,0,1)" "results/1/delete"      mkdir -p "results/5"-    bench $THREADS $NUM_TX $TX_SIZE 0            "(70,10,10,10)" "results/update/5/insert"-    bench $THREADS $NUM_TX $TX_SIZE $NUM_PREFILL "(10,70,10,10)" "results/update/5/update"-    bench $THREADS $NUM_TX $TX_SIZE $NUM_PREFILL "(10,10,70,10)" "results/update/5/lookup"-    bench $THREADS $NUM_TX $TX_SIZE $NUM_PREFILL "(10,10,10,70)" "results/update/5/delete"    -    bench $THREADS $NUM_TX $TX_SIZE $NUM_PREFILL "(25,25,25,25)" "results/update/5/balanced-prefill"+    bench $THREADS $NUM_TX $TX_SIZE 0            "(70,10,10,10)" "results/5/insert"+    bench $THREADS $NUM_TX $TX_SIZE $NUM_PREFILL "(10,70,10,10)" "results/5/update"+    bench $THREADS $NUM_TX $TX_SIZE $NUM_PREFILL "(10,10,70,10)" "results/5/lookup"+    bench $THREADS $NUM_TX $TX_SIZE $NUM_PREFILL "(10,10,10,70)" "results/5/delete"+    bench $THREADS $NUM_TX $TX_SIZE $NUM_PREFILL "(25,25,25,25)" "results/5/balanced"  #    sudo shutdown -h now }
changelog.md view
@@ -1,3 +1,7 @@+# 0.1.2.1 (November 2015)+	* Eliminate a redundant import warning on GHC 7.10+	* Loosen test-suite dependency bounds+ # 0.1.2  (May 2015)     * Add a 'member' convenience function 
src/Control/Concurrent/STM/Map.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE PatternGuards #-} {-# OPTIONS_GHC -funbox-strict-fields #-} @@ -29,7 +30,9 @@     , unsafeToList     ) where +#if __GLASGOW_HASKELL__ < 710 import Control.Applicative ((<$>))+#endif import Control.Concurrent.STM import Control.Monad import Data.Atomics
ttrie.cabal view
@@ -1,5 +1,5 @@ name:                ttrie-version:             0.1.2+version:             0.1.2.1 synopsis:            Contention-free STM hash map description:   A contention-free STM hash map.@@ -35,7 +35,7 @@   other-modules:       Data.SparseArray   default-language:    Haskell2010   ghc-options:         -Wall-  build-depends:       base >=4.7 && <4.8+  build-depends:       base >=4.7 && <5                      , atomic-primops >=0.6                      , hashable >=1.2                      , primitive >=0.5@@ -48,9 +48,9 @@    build-depends:       base-    , QuickCheck ==2.5.*-    , test-framework ==0.8.*-    , test-framework-quickcheck2 ==0.3.*+    , QuickCheck >=2.5+    , test-framework >=0.8+    , test-framework-quickcheck2 >=0.3     , containers >=0.5     , hashable >=1.2     , stm