packages feed

hw-rankselect 0.12.0.2 → 0.12.0.3

raw patch · 10 files changed

+101/−87 lines, 10 filesdep +transformersdep ~QuickCheckdep ~basedep ~bytestringnew-uploaderbinary-addedPVP ok

version bump matches the API change (PVP)

Dependencies added: transformers

Dependency ranges changed: QuickCheck, base, bytestring, conduit, criterion, deepseq, directory, hedgehog, hspec, hw-balancedparens, hw-bits, hw-hedgehog, hw-hspec-hedgehog, hw-prim, hw-rankselect-base, lens, mmap, mtl, optparse-applicative, resourcet, vector

API changes (from Hackage documentation)

Files

README.md view
@@ -1,5 +1,6 @@ # hw-rankselect [![CircleCI](https://circleci.com/gh/haskell-works/hw-rankselect.svg?style=svg)](https://circleci.com/gh/haskell-works/hw-rankselect)+[![Travis](https://travis-ci.org/haskell-works/hw-rankselect.svg?branch=master)](https://travis-ci.org/haskell-works/hw-rankselect)  Efficient `rank` and `select` operations on large bit-vectors based on the paper "Space-Efficient, High-Performance Rank & Select Structures on Uncompressed Bit
app/App/Commands/Build.hs view
@@ -20,14 +20,14 @@ runBuild :: BuildOptions -> IO () runBuild opts = case opts ^. L.indexType of   CsPoppy  -> do-    entries <- listDirectory "data"+    entries <- getDirectoryContents "data"     let files = ("data/" ++) <$> (".ib" `isSuffixOf`) `filter` entries     forM_ files $ \file -> do       putStrLn $ "Loading cspoppy for " <> file       CS.CsPoppy !_ !_ !_ <- mmapFromForeignRegion file       return ()   Poppy512 -> do-    entries <- listDirectory "data"+    entries <- getDirectoryContents "data"     let files = ("data/" ++) <$> (".ib" `isSuffixOf`) `filter` entries     forM_ files $ \file -> do       putStrLn $ "Loading cspoppy for " <> file
app/App/Commands/SelectAll.hs view
@@ -23,7 +23,7 @@ runSelectAll :: O.SelectAllOptions -> IO () runSelectAll opts = case opts ^. L.indexType of   O.CsPoppy -> do-    entries <- listDirectory "data"+    entries <- getDirectoryContents "data"     let files = ("data/" ++) <$> (".ib" `isSuffixOf`) `filter` entries     forM_ files $ \file -> do       putStrLn $ "Loading cspoppy for " <> file@@ -33,7 +33,7 @@         return ()       return ()   O.Poppy512 -> do-    entries <- listDirectory "data"+    entries <- getDirectoryContents "data"     let files = ("data/" ++) <$> (".ib" `isSuffixOf`) `filter` entries     forM_ files $ \file -> do       putStrLn $ "Loading cspoppy for " <> file
app/Main.hs view
@@ -20,7 +20,7 @@  runPoppy512SelectAll :: IO () runPoppy512SelectAll = do-  entries <- listDirectory "data"+  entries <- getDirectoryContents "data"   let files = ("data/" ++) <$> (".ib" `isSuffixOf`) `filter` entries   forM_ files $ \file -> do     putStrLn $ "Loading cspoppy for " <> file@@ -32,7 +32,7 @@  runCsPoppySelectAll :: IO () runCsPoppySelectAll = do-  entries <- listDirectory "data"+  entries <- getDirectoryContents "data"   let files = ("data/" ++) <$> (".ib" `isSuffixOf`) `filter` entries   forM_ files $ \file -> do     putStrLn $ "Loading cspoppy for " <> file
bench/Main.hs view
@@ -6,6 +6,7 @@ import Control.Monad import Criterion.Main import Data.List+import Data.Monoid ((<>)) import Data.Word import HaskellWorks.Data.Bits.PopCount.PopCount1 import HaskellWorks.Data.FromForeignRegion@@ -29,7 +30,7 @@  benchCsPoppyBuild :: IO [Benchmark] benchCsPoppyBuild = do-  entries <- listDirectory "data"+  entries <- getDirectoryContents "data"   let files = ("data/" ++) <$> (".ib" `isSuffixOf`) `filter` entries   return (mkBenchmark <$> files)   where mkBenchmark filename = env (mmapFromForeignRegion filename) $ \bitString -> bgroup filename@@ -38,7 +39,7 @@  benchCsPoppyRank1 :: IO [Benchmark] benchCsPoppyRank1 = do-  entries <- listDirectory "data"+  entries <- getDirectoryContents "data"   let files = ("data/" ++) <$> (".ib" `isSuffixOf`) `filter` entries   return (mkBenchmark <$> files)   where mkBenchmark filename = env (mmapFromForeignRegion filename) $ \(v :: CsPoppy) -> bgroup filename@@ -47,7 +48,7 @@  benchCsPoppySelect1 :: IO [Benchmark] benchCsPoppySelect1 = do-  entries <- listDirectory "data"+  entries <- getDirectoryContents "data"   let files = ("data/" ++) <$> (".ib" `isSuffixOf`) `filter` entries   return (mkBenchmark <$> files)   where mkBenchmark filename = env (mmapFromForeignRegion filename) $ \(rsbs :: CsPoppy) -> bgroup filename@@ -59,7 +60,7 @@  benchPoppy512Build :: IO [Benchmark] benchPoppy512Build = do-  entries <- listDirectory "data"+  entries <- getDirectoryContents "data"   let files = ("data/" ++) <$> (".ib" `isSuffixOf`) `filter` entries   return (mkBenchmark <$> files)   where mkBenchmark filename = env (mmapFromForeignRegion filename) $ \bitString -> bgroup filename@@ -68,7 +69,7 @@  benchPoppy512Rank1 :: IO [Benchmark] benchPoppy512Rank1 = do-  entries <- listDirectory "data"+  entries <- getDirectoryContents "data"   let files = ("data/" ++) <$> (".ib" `isSuffixOf`) `filter` entries   return (mkBenchmark <$> files)   where mkBenchmark filename = env (mmapFromForeignRegion filename) $ \(rsbs :: Poppy512) -> bgroup filename@@ -77,7 +78,7 @@  benchPoppy512Select1 :: IO [Benchmark] benchPoppy512Select1 = do-  entries <- listDirectory "data"+  entries <- getDirectoryContents "data"   let files = ("data/" ++) <$> (".ib" `isSuffixOf`) `filter` entries   return (mkBenchmark <$> files)   where mkBenchmark filename = env (mmapFromForeignRegion filename) $ \(rsbs :: Poppy512) -> bgroup filename@@ -89,7 +90,7 @@  runCsPoppyBuild :: IO () runCsPoppyBuild = do-  entries <- listDirectory "data"+  entries <- getDirectoryContents "data"   let files = ("data/" ++) <$> (".ib" `isSuffixOf`) `filter` entries   forM_ files $ \file -> do     msbs :: CsPoppy <- mmapFromForeignRegion file@@ -98,7 +99,7 @@  benchMakeCsPoppyBlocks1 :: IO [Benchmark] benchMakeCsPoppyBlocks1 = do-  entries <- listDirectory "data"+  entries <- getDirectoryContents "data"   let files = ("data/" ++) <$> (".ib" `isSuffixOf`) `filter` entries   return (mkBenchmark <$> files)   where mkBenchmark filename = env (mmapFromForeignRegion filename) $ \(v :: DVS.Vector Word64) -> bgroup filename@@ -107,7 +108,7 @@  benchMakeCsPoppyBlocks2 :: IO [Benchmark] benchMakeCsPoppyBlocks2 = do-  entries <- listDirectory "data"+  entries <- getDirectoryContents "data"   let files = ("data/" ++) <$> (".ib" `isSuffixOf`) `filter` entries   return (mkBenchmark <$> files)   where mkBenchmark filename = env (mmapFromForeignRegion filename) $ \(v :: DVS.Vector Word64) -> bgroup filename@@ -116,7 +117,7 @@  benchMakeCsPoppyLayerM :: IO [Benchmark] benchMakeCsPoppyLayerM = do-  entries <- listDirectory "data"+  entries <- getDirectoryContents "data"   let files = ("data/" ++) <$> (".ib" `isSuffixOf`) `filter` entries   return (mkBenchmark <$> files)   where mkBenchmark filename = env (mkEnv filename) $ \(v :: DVS.Vector Word64) -> bgroup filename@@ -129,7 +130,7 @@  benchGenCsSamples :: IO [Benchmark] benchGenCsSamples = do-  entries <- listDirectory "data"+  entries <- getDirectoryContents "data"   let files = ("data/" ++) <$> (".ib" `isSuffixOf`) `filter` entries   return (mkBenchmark <$> files)   where mkBenchmark filename = env (mkEnv filename) $ \ ~(pc, v :: DVS.Vector Word64) -> bgroup filename
+ data/sample-000.idx view

binary file changed (absent → 184872 bytes)

hw-rankselect.cabal view
@@ -1,11 +1,11 @@--- This file has been generated from package.yaml by hpack version 0.20.0.+-- This file has been generated from package.yaml by hpack version 0.27.0. -- -- see: https://github.com/sol/hpack ----- hash: b29dda4066f480c03d4e57b5948804c058cecee507ecba37e5857567b3b852fb+-- hash: 1a884e08d826a4ac01f16811763a63e54433817022a52322a43feb446d2b9e13  name:           hw-rankselect-version:        0.12.0.2+version:        0.12.0.3 synopsis:       Rank-select description:    Please see README.md category:       Data, Conduit@@ -16,11 +16,13 @@ copyright:      2016 John Ky license:        BSD3 license-file:   LICENSE+tested-with:    GHC == 8.4.2, GHC == 8.2.2, GHC == 8.0.2, GHC == 7.10.3 build-type:     Simple cabal-version:  >= 1.10  extra-source-files:     data/README.md+    data/sample-000.idx     README.md  source-repository head@@ -33,51 +35,32 @@   default: False  library-  hs-source-dirs:-      src-  ghc-options: -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -O2 -msse4.2-  build-depends:-      base >=4 && <5-    , deepseq-    , hw-balancedparens >=0.1.0.0-    , hw-bits >=0.6.0.0-    , hw-prim >=0.4.0.3-    , hw-rankselect-base >=0.2.0.0-    , vector-  if (flag(bmi2)) && (impl(ghc >=8.4.1))-    ghc-options: -mbmi2 -msse4.2-    cpp-options: -DBMI2_ENABLED   exposed-modules:       HaskellWorks.Data.RankSelect.CsPoppy       HaskellWorks.Data.RankSelect.CsPoppy.Internal       HaskellWorks.Data.RankSelect.Poppy512   other-modules:       Paths_hw_rankselect-  default-language: Haskell2010--executable hw-rankselect-  main-is: Main.hs   hs-source-dirs:-      app-  default-extensions: OverloadedStrings TupleSections-  ghc-options: -threaded -rtsopts -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -O2 -msse4.2+      src+  ghc-options: -Wall -O2 -msse4.2   build-depends:-      base >=4.7 && <5-    , directory-    , hw-bits >=0.4.0.0-    , hw-prim >=0.4.0.0-    , hw-rankselect-    , hw-rankselect-base >=0.2.0.0-    , lens-    , mmap-    , mtl-    , optparse-applicative-    , vector+      base >=4 && <5+    , deepseq >=1.4 && <1.5+    , hw-balancedparens >=0.1.0.0 && <0.3+    , hw-bits >=0.6.0.0 && <0.8+    , hw-prim >=0.6 && <0.7+    , hw-rankselect-base >=0.2.0.0 && <0.4+    , vector >=0.12 && <0.13   if (flag(bmi2)) && (impl(ghc >=8.4.1))     ghc-options: -mbmi2 -msse4.2     cpp-options: -DBMI2_ENABLED-  if os(osx)-    cpp-options: -D__attribute__(A)= -D_Nullable= -D_Nonnull=+  if (impl(ghc >=8.0.1))+    ghc-options: -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints+  default-language: Haskell2010++executable hw-rankselect+  main-is: Main.hs   other-modules:       App.Commands       App.Commands.Build@@ -87,31 +70,32 @@       App.Commands.UnitTest       App.Commands.Validate       Paths_hw_rankselect-  default-language: Haskell2010--test-suite hw-rankselect-test-  type: exitcode-stdio-1.0-  main-is: Spec.hs   hs-source-dirs:-      test-  ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall+      app+  default-extensions: OverloadedStrings TupleSections+  ghc-options: -threaded -rtsopts -Wall -O2 -msse4.2   build-depends:-      QuickCheck-    , base >=4 && <5-    , directory-    , hedgehog-    , hspec-    , hw-bits >=0.4.0.0-    , hw-hedgehog >=0.1.0.1-    , hw-hspec-hedgehog-    , hw-prim >=0.5.0.4+      base >=4.7 && <5+    , directory >=1.2 && <1.4+    , hw-bits >=0.4.0.0 && <0.8+    , hw-prim >=0.4.0.0 && <0.7     , hw-rankselect-    , hw-rankselect-base >=0.2.0.0-    , mmap-    , vector+    , hw-rankselect-base >=0.2.0.0 && <0.4+    , lens >=4 && <5+    , mmap >=0.5 && <0.6+    , mtl >=2.2 && <2.3+    , optparse-applicative >=0.11 && <0.15+    , vector >=0.12 && <0.13   if (flag(bmi2)) && (impl(ghc >=8.4.1))     ghc-options: -mbmi2 -msse4.2     cpp-options: -DBMI2_ENABLED+  if (impl(ghc >=8.0.1))+    ghc-options: -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints+  default-language: Haskell2010++test-suite hw-rankselect-test+  type: exitcode-stdio-1.0+  main-is: Spec.hs   other-modules:       HaskellWorks.Data.RankSelect.BasicGen       HaskellWorks.Data.RankSelect.BinarySearchSpec@@ -125,30 +109,56 @@       HaskellWorks.Data.RankSelect.ValidateSpec       Test.Common       Paths_hw_rankselect+  hs-source-dirs:+      test+  ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall+  build-depends:+      QuickCheck >=2.10 && <2.12+    , base >=4 && <5+    , directory >=1.2 && <1.4+    , hedgehog >=0.5 && <0.7+    , hspec >=2.4 && <2.6+    , hw-bits >=0.4.0.0 && <0.8+    , hw-hedgehog >=0.1.0.1 && <0.2+    , hw-hspec-hedgehog >=0.1 && <0.2+    , hw-prim >=0.5.0.4 && <0.7+    , hw-rankselect+    , hw-rankselect-base >=0.2.0.0 && <0.4+    , mmap >=0.5 && <0.6+    , transformers >=0.4 && <0.6+    , vector >=0.12 && <0.13+  if (flag(bmi2)) && (impl(ghc >=8.4.1))+    ghc-options: -mbmi2 -msse4.2+    cpp-options: -DBMI2_ENABLED+  if (impl(ghc >=8.0.1))+    ghc-options: -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints   default-language: Haskell2010+  build-tool-depends: hspec-discover:hspec-discover  benchmark bench   type: exitcode-stdio-1.0   main-is: Main.hs+  other-modules:+      Paths_hw_rankselect   hs-source-dirs:       bench   ghc-options: -O2 -Wall -msse4.2   build-depends:       base >=4 && <5-    , bytestring-    , conduit-    , criterion-    , directory-    , hw-bits >=0.4.0.0-    , hw-prim >=0.4.0.0+    , bytestring >=0.10 && <0.11+    , conduit >=1.2 && <1.4+    , criterion >=1.1 && <1.5+    , directory >=1.2 && <1.5+    , hw-bits >=0.4.0.0 && <0.8+    , hw-prim >=0.6.0.0 && <0.7     , hw-rankselect-    , hw-rankselect-base >=0.2.0.0-    , mmap-    , resourcet-    , vector+    , hw-rankselect-base >=0.3.1.0 && <0.4+    , mmap >=0.5 && <0.6+    , resourcet >=1.1 && <1.3+    , vector >=0.12 && <0.13   if (flag(bmi2)) && (impl(ghc >=8.4.1))     ghc-options: -mbmi2 -msse4.2     cpp-options: -DBMI2_ENABLED-  other-modules:-      Paths_hw_rankselect+  if (impl(ghc >=8.0.1))+    ghc-options: -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints   default-language: Haskell2010
test/HaskellWorks/Data/RankSelect/CsPoppySpec.hs view
@@ -9,6 +9,7 @@ import Control.Monad import Control.Monad.IO.Class import Data.Maybe+import Data.Monoid ((<>)) import Data.Word import GHC.Exts import HaskellWorks.Data.AtIndex
test/HaskellWorks/Data/RankSelect/ValidateSpec.hs view
@@ -6,6 +6,7 @@ import Control.Monad import Control.Monad.IO.Class import Data.List                                 (isSuffixOf)+import Data.Monoid                               ((<>)) import Data.Word import HaskellWorks.Data.AtIndex import HaskellWorks.Data.Bits.PopCount.PopCount1@@ -26,7 +27,7 @@ {-# ANN module ("HLint: ignore Reduce duplication"  :: String) #-}  entries :: [FilePath]-entries = mfilter (".idx" `isSuffixOf`) <$> unsafePerformIO $ IO.listDirectory "data"+entries = mfilter (".idx" `isSuffixOf`) <$> unsafePerformIO $ IO.getDirectoryContents "data"  spec :: Spec spec = describe "HaskellWorks.Data.RankSelect.ValidateSpec" $ do
test/Test/Common.hs view
@@ -13,7 +13,7 @@  corpusFiles :: [FilePath] corpusFiles = IO.unsafePerformIO $ do-  entries <- IO.listDirectory "data"+  entries <- IO.getDirectoryContents "data"   let files = ("data/" ++) <$> (".ib" `isSuffixOf`) `filter` entries   return files {-# NOINLINE corpusFiles #-}