packages feed

hw-balancedparens 0.2.0.2 → 0.2.0.3

raw patch · 6 files changed

+116/−89 lines, 6 filesdep +deepseqdep ~criteriondep ~hw-excessPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: deepseq

Dependency ranges changed: criterion, hw-excess

API changes (from Hackage documentation)

+ HaskellWorks.Data.BalancedParens.RangeMinMax: instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (HaskellWorks.Data.BalancedParens.RangeMinMax.RangeMinMax a)
+ HaskellWorks.Data.BalancedParens.RangeMinMax: instance GHC.Generics.Generic (HaskellWorks.Data.BalancedParens.RangeMinMax.RangeMinMax a)
+ HaskellWorks.Data.BalancedParens.RangeMinMax2: instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (HaskellWorks.Data.BalancedParens.RangeMinMax2.RangeMinMax2 a)
+ HaskellWorks.Data.BalancedParens.RangeMinMax2: instance GHC.Generics.Generic (HaskellWorks.Data.BalancedParens.RangeMinMax2.RangeMinMax2 a)
- HaskellWorks.Data.BalancedParens.RangeMinMax: RangeMinMax :: !a -> !(Vector Int8) -> !(Vector Int8) -> !(Vector Int8) -> !(Vector Int16) -> !(Vector Int16) -> !(Vector Int16) -> !(Vector Int16) -> !(Vector Int16) -> !(Vector Int16) -> RangeMinMax a
+ HaskellWorks.Data.BalancedParens.RangeMinMax: RangeMinMax :: !a -> !Vector Int8 -> !Vector Int8 -> !Vector Int8 -> !Vector Int16 -> !Vector Int16 -> !Vector Int16 -> !Vector Int16 -> !Vector Int16 -> !Vector Int16 -> RangeMinMax a
- HaskellWorks.Data.BalancedParens.RangeMinMax: [rangeMinMaxL0Excess] :: RangeMinMax a -> !(Vector Int8)
+ HaskellWorks.Data.BalancedParens.RangeMinMax: [rangeMinMaxL0Excess] :: RangeMinMax a -> !Vector Int8
- HaskellWorks.Data.BalancedParens.RangeMinMax: [rangeMinMaxL0Max] :: RangeMinMax a -> !(Vector Int8)
+ HaskellWorks.Data.BalancedParens.RangeMinMax: [rangeMinMaxL0Max] :: RangeMinMax a -> !Vector Int8
- HaskellWorks.Data.BalancedParens.RangeMinMax: [rangeMinMaxL0Min] :: RangeMinMax a -> !(Vector Int8)
+ HaskellWorks.Data.BalancedParens.RangeMinMax: [rangeMinMaxL0Min] :: RangeMinMax a -> !Vector Int8
- HaskellWorks.Data.BalancedParens.RangeMinMax: [rangeMinMaxL1Excess] :: RangeMinMax a -> !(Vector Int16)
+ HaskellWorks.Data.BalancedParens.RangeMinMax: [rangeMinMaxL1Excess] :: RangeMinMax a -> !Vector Int16
- HaskellWorks.Data.BalancedParens.RangeMinMax: [rangeMinMaxL1Max] :: RangeMinMax a -> !(Vector Int16)
+ HaskellWorks.Data.BalancedParens.RangeMinMax: [rangeMinMaxL1Max] :: RangeMinMax a -> !Vector Int16
- HaskellWorks.Data.BalancedParens.RangeMinMax: [rangeMinMaxL1Min] :: RangeMinMax a -> !(Vector Int16)
+ HaskellWorks.Data.BalancedParens.RangeMinMax: [rangeMinMaxL1Min] :: RangeMinMax a -> !Vector Int16
- HaskellWorks.Data.BalancedParens.RangeMinMax: [rangeMinMaxL2Excess] :: RangeMinMax a -> !(Vector Int16)
+ HaskellWorks.Data.BalancedParens.RangeMinMax: [rangeMinMaxL2Excess] :: RangeMinMax a -> !Vector Int16
- HaskellWorks.Data.BalancedParens.RangeMinMax: [rangeMinMaxL2Max] :: RangeMinMax a -> !(Vector Int16)
+ HaskellWorks.Data.BalancedParens.RangeMinMax: [rangeMinMaxL2Max] :: RangeMinMax a -> !Vector Int16
- HaskellWorks.Data.BalancedParens.RangeMinMax: [rangeMinMaxL2Min] :: RangeMinMax a -> !(Vector Int16)
+ HaskellWorks.Data.BalancedParens.RangeMinMax: [rangeMinMaxL2Min] :: RangeMinMax a -> !Vector Int16
- HaskellWorks.Data.BalancedParens.RangeMinMax2: RangeMinMax2 :: !a -> !(Vector Int8) -> !(Vector Int8) -> !(Vector Int8) -> !(Vector Int16) -> !(Vector Int16) -> !(Vector Int16) -> !(Vector Int16) -> !(Vector Int16) -> !(Vector Int16) -> !(Vector Int16) -> !(Vector Int16) -> !(Vector Int16) -> !(Vector Int16) -> !(Vector Int16) -> !(Vector Int16) -> RangeMinMax2 a
+ HaskellWorks.Data.BalancedParens.RangeMinMax2: RangeMinMax2 :: !a -> !Vector Int8 -> !Vector Int8 -> !Vector Int8 -> !Vector Int16 -> !Vector Int16 -> !Vector Int16 -> !Vector Int16 -> !Vector Int16 -> !Vector Int16 -> !Vector Int16 -> !Vector Int16 -> !Vector Int16 -> !Vector Int16 -> !Vector Int16 -> !Vector Int16 -> RangeMinMax2 a
- HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L0Excess] :: RangeMinMax2 a -> !(Vector Int8)
+ HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L0Excess] :: RangeMinMax2 a -> !Vector Int8
- HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L0Max] :: RangeMinMax2 a -> !(Vector Int8)
+ HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L0Max] :: RangeMinMax2 a -> !Vector Int8
- HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L0Min] :: RangeMinMax2 a -> !(Vector Int8)
+ HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L0Min] :: RangeMinMax2 a -> !Vector Int8
- HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L1Excess] :: RangeMinMax2 a -> !(Vector Int16)
+ HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L1Excess] :: RangeMinMax2 a -> !Vector Int16
- HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L1Max] :: RangeMinMax2 a -> !(Vector Int16)
+ HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L1Max] :: RangeMinMax2 a -> !Vector Int16
- HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L1Min] :: RangeMinMax2 a -> !(Vector Int16)
+ HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L1Min] :: RangeMinMax2 a -> !Vector Int16
- HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L2Excess] :: RangeMinMax2 a -> !(Vector Int16)
+ HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L2Excess] :: RangeMinMax2 a -> !Vector Int16
- HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L2Max] :: RangeMinMax2 a -> !(Vector Int16)
+ HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L2Max] :: RangeMinMax2 a -> !Vector Int16
- HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L2Min] :: RangeMinMax2 a -> !(Vector Int16)
+ HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L2Min] :: RangeMinMax2 a -> !Vector Int16
- HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L3Excess] :: RangeMinMax2 a -> !(Vector Int16)
+ HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L3Excess] :: RangeMinMax2 a -> !Vector Int16
- HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L3Max] :: RangeMinMax2 a -> !(Vector Int16)
+ HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L3Max] :: RangeMinMax2 a -> !Vector Int16
- HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L3Min] :: RangeMinMax2 a -> !(Vector Int16)
+ HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L3Min] :: RangeMinMax2 a -> !Vector Int16
- HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L4Excess] :: RangeMinMax2 a -> !(Vector Int16)
+ HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L4Excess] :: RangeMinMax2 a -> !Vector Int16
- HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L4Max] :: RangeMinMax2 a -> !(Vector Int16)
+ HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L4Max] :: RangeMinMax2 a -> !Vector Int16
- HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L4Min] :: RangeMinMax2 a -> !(Vector Int16)
+ HaskellWorks.Data.BalancedParens.RangeMinMax2: [rangeMinMax2L4Min] :: RangeMinMax2 a -> !Vector Int16

Files

LICENSE view
@@ -1,4 +1,4 @@-Copyright John Ky (c) 2016+Copyright John Ky (c) 2016-2019  All rights reserved. 
README.md view
@@ -1,2 +1,3 @@ # hw-balancedparens-[![0.0-branch](https://circleci.com/gh/haskell-works/hw-balancedparens/tree/0.0-branch.svg?style=svg)](https://circleci.com/gh/haskell-works/hw-balancedparens/tree/0.0-branch)++[![CircleCI](https://circleci.com/gh/haskell-works/hw-balancedparens.svg?style=svg)](https://circleci.com/gh/haskell-works/hw-balancedparens)
bench/Main.hs view
@@ -2,21 +2,26 @@  module Main where -import           Criterion.Main-import qualified Data.Vector.Storable                                   as DVS-import           Data.Word-import           HaskellWorks.Data.BalancedParens.FindClose-import           HaskellWorks.Data.BalancedParens.RangeMinMax-import           HaskellWorks.Data.Bits.Broadword-import           HaskellWorks.Data.Bits.FromBitTextByteString-import           HaskellWorks.Data.Naive+import Criterion.Main+import Data.Word+import HaskellWorks.Data.BalancedParens.FindClose+import HaskellWorks.Data.Bits.Broadword+import HaskellWorks.Data.Bits.FromBitTextByteString+import HaskellWorks.Data.Naive +import qualified Data.Vector.Storable                          as DVS+import qualified HaskellWorks.Data.BalancedParens.RangeMinMax  as RMM+import qualified HaskellWorks.Data.BalancedParens.RangeMinMax2 as RMM2+ setupEnvVector :: Int -> IO (DVS.Vector Word64) setupEnvVector n = return $ DVS.fromList (take n (cycle [maxBound, 0])) -setupEnvRmmVector :: Int -> IO (RangeMinMax (DVS.Vector Word64))-setupEnvRmmVector n = return $ mkRangeMinMax $ DVS.fromList (take n (cycle [maxBound, 0]))+setupEnvRmmVector :: Int -> IO (RMM.RangeMinMax (DVS.Vector Word64))+setupEnvRmmVector n = return $ RMM.mkRangeMinMax $ DVS.fromList (take n (cycle [maxBound, 0])) +setupEnvRmm2Vector :: Int -> IO (RMM2.RangeMinMax2 (DVS.Vector Word64))+setupEnvRmm2Vector n = return $ RMM2.mkRangeMinMax2 $ DVS.fromList (take n (cycle [maxBound, 0]))+ setupEnvBP2 :: IO Word64 setupEnvBP2 = return $ DVS.head (fromBitTextByteString "10") @@ -61,7 +66,13 @@     [ bench "Broadword"     (whnf (findClose (Broadword w)) 1)     , bench "Naive"         (whnf (findClose (Naive     w)) 1)     ]-  , env (setupEnvVector 1000000) $ \bv -> bgroup "RangeMinMax"+  , env (setupEnvVector 1000000) $ \bv -> bgroup "Vanilla"+    [ bench "findClose"   (nf   (map (findClose bv)) [0, 1000..10000000])+    ]+  , env (setupEnvRmmVector 1000000) $ \bv -> bgroup "RangeMinMax"+    [ bench "findClose"   (nf   (map (findClose bv)) [0, 1000..10000000])+    ]+  , env (setupEnvRmm2Vector 1000000) $ \bv -> bgroup "RangeMinMax2"     [ bench "findClose"   (nf   (map (findClose bv)) [0, 1000..10000000])     ]   ]
hw-balancedparens.cabal view
@@ -1,9 +1,7 @@--- This file has been generated from package.yaml by hpack version 0.18.1.------ see: https://github.com/sol/hpack+cabal-version:  2.2  name:           hw-balancedparens-version:        0.2.0.2+version:        0.2.0.3 synopsis:       Balanced parentheses description:    Balanced parentheses. category:       Data, Bit, Succinct Data Structures, Data Structures@@ -11,84 +9,93 @@ bug-reports:    https://github.com/haskell-works/hw-balancedparens/issues author:         John Ky maintainer:     newhoggy@gmail.com-copyright:      2016 John Ky-license:        BSD3+copyright:      2016-2019 John Ky+license:        BSD-3-Clause license-file:   LICENSE-tested-with:    GHC == 8.4.2, GHC == 8.2.2, GHC == 8.0.2, GHC == 7.10.3+tested-with:    GHC == 8.6.5, GHC == 8.4.4, GHC == 8.2.2 build-type:     Simple-cabal-version:  >= 1.10- extra-source-files:-    README.md+  README.md  source-repository head-  type: git+  type:     git   location: https://github.com/haskell-works/hw-balancedparens +common base               { build-depends: base                 >= 4        && < 5      }++common QuickCheck         { build-depends: QuickCheck           >= 2.10     && < 2.12   }+common criterion          { build-depends: criterion            >= 1.2      && < 1.6    }+common deepseq            { build-depends: deepseq              >= 1.4.2.0  && < 1.5    }+common hspec              { build-depends: hspec                >= 2.2      && < 2.6    }+common hw-bits            { build-depends: hw-bits              >= 0.4.0.0  && < 0.8    }+common hw-excess          { build-depends: hw-excess            >= 0.2.0.3  && < 0.3    }+common hw-prim            { build-depends: hw-prim              >= 0.4.0.0  && < 0.7    }+common hw-rankselect-base { build-depends: hw-rankselect-base   >= 0.2.0.0  && < 0.4    }+common vector             { build-depends: vector               >= 0.12     && < 0.13   }++common config+  default-language:   Haskell2010+  ghc-options:        -Wall -O2 -msse4.2+ library-  hs-source-dirs:-      src-  ghc-options: -Wall -O2 -msse4.2-  build-depends:-      base >=4 && <5-    , hw-bits >=0.4.0.0 && < 0.8-    , hw-prim >=0.4.0.0 && < 0.7-    , vector >= 0.12 && < 0.13-    , hw-excess >=0.2.0.0 && < 0.3-    , hw-rankselect-base >=0.2.0.0 && < 0.4+  import:   base, config+          , deepseq+          , hw-bits+          , hw-excess+          , hw-prim+          , hw-rankselect-base+          , vector   exposed-modules:-      HaskellWorks.Data.BalancedParens-      HaskellWorks.Data.BalancedParens.BalancedParens-      HaskellWorks.Data.BalancedParens.Broadword-      HaskellWorks.Data.BalancedParens.CloseAt-      HaskellWorks.Data.BalancedParens.Enclose-      HaskellWorks.Data.BalancedParens.FindClose-      HaskellWorks.Data.BalancedParens.FindCloseN-      HaskellWorks.Data.BalancedParens.FindOpen-      HaskellWorks.Data.BalancedParens.FindOpenN-      HaskellWorks.Data.BalancedParens.NewCloseAt-      HaskellWorks.Data.BalancedParens.NewOpenAt-      HaskellWorks.Data.BalancedParens.OpenAt-      HaskellWorks.Data.BalancedParens.RangeMinMax-      HaskellWorks.Data.BalancedParens.RangeMinMax2-      HaskellWorks.Data.BalancedParens.Simple-  other-modules:-      Paths_hw_balancedparens-  default-language: Haskell2010+    HaskellWorks.Data.BalancedParens+    HaskellWorks.Data.BalancedParens.BalancedParens+    HaskellWorks.Data.BalancedParens.Broadword+    HaskellWorks.Data.BalancedParens.CloseAt+    HaskellWorks.Data.BalancedParens.Enclose+    HaskellWorks.Data.BalancedParens.FindClose+    HaskellWorks.Data.BalancedParens.FindCloseN+    HaskellWorks.Data.BalancedParens.FindOpen+    HaskellWorks.Data.BalancedParens.FindOpenN+    HaskellWorks.Data.BalancedParens.NewCloseAt+    HaskellWorks.Data.BalancedParens.NewOpenAt+    HaskellWorks.Data.BalancedParens.OpenAt+    HaskellWorks.Data.BalancedParens.RangeMinMax+    HaskellWorks.Data.BalancedParens.RangeMinMax2+    HaskellWorks.Data.BalancedParens.Simple+  other-modules:      Paths_hw_balancedparens+  autogen-modules:    Paths_hw_balancedparens+  hs-source-dirs:     src  test-suite hw-balancedparens-test-  type: exitcode-stdio-1.0-  main-is: Spec.hs-  hs-source-dirs:-      test-  ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N-  build-depends:-      base >=4 && <5-    , hw-bits >=0.4.0.0 && < 0.8-    , hw-prim >=0.4.0.0 && < 0.7-    , vector >= 0.12 && < 0.13-    , hspec >= 2.2 && < 2.6-    , hw-balancedparens-    , hw-rankselect-base >=0.2.0.0 && < 0.4-    , QuickCheck >= 2.10 && < 2.12+  import:   base, config+          , QuickCheck+          , hspec+          , hw-bits+          , hw-prim+          , hw-rankselect-base+          , vector+  type:               exitcode-stdio-1.0+  main-is:            Spec.hs   other-modules:       HaskellWorks.Data.BalancedParens.Internal.BroadwordSpec       HaskellWorks.Data.BalancedParens.RangeMinMax2Spec       HaskellWorks.Data.BalancedParens.RangeMinMaxSpec       HaskellWorks.Data.BalancedParens.SimpleSpec-  default-language: Haskell2010+      Paths_hw_balancedparens+  hs-source-dirs:     test+  ghc-options:        -threaded -rtsopts -with-rtsopts=-N+  build-depends:      hw-balancedparens+  autogen-modules:    Paths_hw_balancedparens+  build-tool-depends: hspec-discover:hspec-discover  benchmark bench-  type: exitcode-stdio-1.0-  main-is: Main.hs-  hs-source-dirs:-      bench-  ghc-options: -Wall -O2 -msse4.2-  build-depends:-      base >=4 && <5-    , hw-bits >=0.4.0.0 && < 0.8-    , hw-prim >=0.4.0.0 && < 0.7-    , vector >= 0.12 && < 0.13-    , criterion >= 1.2 && < 1.5-    , hw-balancedparens-  default-language: Haskell2010+  import:   base, config+          , criterion+          , hw-bits+          , hw-prim+          , vector+  type:               exitcode-stdio-1.0+  main-is:            Main.hs+  other-modules:      Paths_hw_balancedparens+  autogen-modules:    Paths_hw_balancedparens+  hs-source-dirs:     bench+  build-depends:      hw-balancedparens
src/HaskellWorks/Data/BalancedParens/RangeMinMax.hs view
@@ -1,4 +1,6 @@ {-# LANGUAGE BangPatterns      #-}+{-# LANGUAGE DeriveAnyClass    #-}+{-# LANGUAGE DeriveGeneric     #-} {-# LANGUAGE FlexibleContexts  #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE InstanceSigs      #-}@@ -9,7 +11,9 @@   , mkRangeMinMax   ) where +import Control.DeepSeq import Data.Int+import GHC.Generics import HaskellWorks.Data.AtIndex import HaskellWorks.Data.BalancedParens.BalancedParens import HaskellWorks.Data.BalancedParens.CloseAt@@ -44,7 +48,7 @@   , rangeMinMaxL2Min    :: !(DVS.Vector Int16)   , rangeMinMaxL2Max    :: !(DVS.Vector Int16)   , rangeMinMaxL2Excess :: !(DVS.Vector Int16)-  }+  } deriving (NFData, Generic)  factorL0 :: Integral a => a factorL0 = 1
src/HaskellWorks/Data/BalancedParens/RangeMinMax2.hs view
@@ -1,8 +1,10 @@-{-# LANGUAGE BangPatterns       #-}-{-# LANGUAGE FlexibleContexts   #-}-{-# LANGUAGE FlexibleInstances  #-}-{-# LANGUAGE InstanceSigs       #-}-{-# LANGUAGE TypeFamilies       #-}+{-# LANGUAGE BangPatterns      #-}+{-# LANGUAGE DeriveAnyClass    #-}+{-# LANGUAGE DeriveGeneric     #-}+{-# LANGUAGE FlexibleContexts  #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE InstanceSigs      #-}+{-# LANGUAGE TypeFamilies      #-}  module HaskellWorks.Data.BalancedParens.RangeMinMax2   ( RangeMinMax2(..)@@ -11,7 +13,9 @@   , genMax   ) where +import Control.DeepSeq import Data.Int+import GHC.Generics import HaskellWorks.Data.AtIndex import HaskellWorks.Data.BalancedParens.BalancedParens import HaskellWorks.Data.BalancedParens.CloseAt@@ -20,8 +24,8 @@ import HaskellWorks.Data.BalancedParens.FindCloseN import HaskellWorks.Data.BalancedParens.FindOpen import HaskellWorks.Data.BalancedParens.FindOpenN-import HaskellWorks.Data.BalancedParens.OpenAt import HaskellWorks.Data.BalancedParens.NewCloseAt+import HaskellWorks.Data.BalancedParens.OpenAt import HaskellWorks.Data.Bits.AllExcess.AllExcess1 import HaskellWorks.Data.Bits.BitLength import HaskellWorks.Data.Bits.BitWise@@ -31,7 +35,7 @@ import HaskellWorks.Data.RankSelect.Base.Rank0 import HaskellWorks.Data.RankSelect.Base.Rank1 import HaskellWorks.Data.Vector.AsVector64-import Prelude hiding (length)+import Prelude                                         hiding (length)  import qualified Data.Vector          as DV import qualified Data.Vector.Storable as DVS@@ -53,7 +57,7 @@   , rangeMinMax2L4Min    :: !(DVS.Vector Int16)   , rangeMinMax2L4Max    :: !(DVS.Vector Int16)   , rangeMinMax2L4Excess :: !(DVS.Vector Int16)-  }+  } deriving (NFData, Generic)  factorL0 :: Integral a => a factorL0 = 1