packages feed

vector-builder 0.3.5 → 0.3.6

raw patch · 6 files changed

+89/−127 lines, 6 filesdep +attoparsecdep −bugdep −criteriondep −foldldep ~rerebasedep ~tastydep ~tasty-hunit

Dependencies added: attoparsec

Dependencies removed: bug, criterion, foldl, rebase

Dependency ranges changed: rerebase, tasty, tasty-hunit, tasty-quickcheck

Files

− foldl-benchmark/Main.hs
@@ -1,43 +0,0 @@-module Main where--import Prelude-import Criterion-import Criterion.Main-import qualified Control.Foldl as A-import qualified Data.Vector as F-import qualified Data.Vector.Unboxed as G-import qualified VectorBuilder.Builder as N-import qualified VectorBuilder.Vector as O---main =-  defaultMain [boxed, unboxed]-  where-    comparisons name builderSubject growingSubject =-      bgroup name (map comparison sizes)-      where-        sizes =-          [1000, 10000, 100000, 1000000, 10000000]-        comparison size =-          bgroup (show size)-          [-            bench "builder" (nf builderSubject input),-            bench "growing" (nf growingSubject input)-          ]-          where-            input =-              [0..size]-    boxed =-      comparisons "boxed" builderSubject growingSubject-      where-        builderSubject input =-          A.fold (A.foldMap N.singleton O.build) input :: Vector Int-        growingSubject input =-          runST (A.foldM A.vector input) :: Vector Int-    unboxed =-      comparisons "unboxed" builderSubject growingSubject-      where-        builderSubject input =-          A.fold (A.foldMap N.singleton O.build) input :: G.Vector Int-        growingSubject input =-          runST (A.foldM A.vector input) :: G.Vector Int
− foldl-profiling/Main.hs
@@ -1,15 +0,0 @@-module Main where--import Prelude-import qualified Data.Vector.Unboxed as V-import qualified Control.Foldl as L-import qualified VectorBuilder.Builder as N-import qualified VectorBuilder.Vector as O--main :: IO ()-main = (print . V.maximum) (L.fold fold input) where-  input = [1..1000000] :: [Int]-  fold = L.Fold step begin done where-    begin = N.empty-    step x a = x <> N.singleton a-    done = O.build
library/VectorBuilder/Alternative.hs view
@@ -5,7 +5,7 @@ module VectorBuilder.Alternative where -import VectorBuilder.Prelude+import VectorBuilder.Prelude hiding (many, some) import Data.Vector (Vector) import qualified VectorBuilder.Builder as A import qualified VectorBuilder.Vector as B@@ -13,7 +13,18 @@  {-# INLINABLE many #-} many :: Alternative m => m a -> m (Vector a)-many m =-  fmap B.build loop-  where-    loop = ((<>) <$> A.singleton <$> m <*> loop) <|> pure mempty+many = fmap B.build . manyBuilder++{-# INLINABLE manyBuilder #-}+manyBuilder :: Alternative m => m a -> m (A.Builder a)+manyBuilder m = let+  loop = ((<>) <$> A.singleton <$> m <*> loop) <|> pure mempty+  in loop++{-# INLINABLE some #-}+some :: Alternative m => m a -> m (Vector a)+some m = B.build <$> someBuilder m++{-# INLINABLE someBuilder #-}+someBuilder :: Alternative m => m a -> m (A.Builder a)+someBuilder m = (<>) <$> A.singleton <$> m <*> manyBuilder m
tests/Main.hs view
@@ -1,13 +1,16 @@ module Main where -import Rebase.Prelude+import Prelude import Test.Tasty import Test.Tasty.Runners import Test.Tasty.HUnit import Test.Tasty.QuickCheck import qualified VectorBuilder.Builder as A import qualified VectorBuilder.Vector as B+import qualified VectorBuilder.Alternative as F import qualified Main.Sample as C+import qualified Data.Attoparsec.Text as D+import qualified Data.Vector as E   main =@@ -17,5 +20,13 @@     testProperty "" $ \(samples :: [C.Sample Int]) ->       foldMap C.toVector samples ===       B.build (foldMap C.toBuilder samples)+    ,+    testCase "Alternative.some" $ assertEqual ""+      (Right (E.fromList "1234"))+      (D.parseOnly (F.some D.anyChar) "1234")+    ,+    testCase "Alternative.some on empty" $ assertEqual ""+      (Left "not enough input")+      (D.parseOnly (F.some D.anyChar) "")   ] 
tests/Main/Sample.hs view
@@ -1,9 +1,9 @@ module Main.Sample where -import Rebase.Prelude+import Prelude import Test.QuickCheck.Instances import qualified VectorBuilder.Builder as A-import qualified Rebase.Data.Vector as B+import qualified Data.Vector as B import qualified Test.Tasty.QuickCheck as C  
vector-builder.cabal view
@@ -1,7 +1,7 @@ name:   vector-builder version:-  0.3.5+  0.3.6 synopsis:   Vector builder description:@@ -76,10 +76,10 @@     VectorBuilder.Core.Update     VectorBuilder.Core.Builder   build-depends:-    vector >= 0.11 && < 0.13,-    semigroups >= 0.16 && < 0.20,-    base-prelude < 2,-    base >= 4.6 && < 5+    vector >=0.11 && <0.13,+    semigroups >=0.16 && <0.20,+    base-prelude <2,+    base >=4.6 && <5  test-suite tests   type:@@ -95,62 +95,60 @@   default-language:     Haskell2010   build-depends:-    -- testing:-    tasty >=0.12 && <0.13,-    tasty-quickcheck >=0.9 && <0.10,-    tasty-hunit >=0.9 && <0.10,-    quickcheck-instances >=0.3.11 && <0.4,+    attoparsec >=0.13 && <0.14,     QuickCheck >=2.8.1 && <3,-    -- -    vector-builder,-    -- -    rebase+    quickcheck-instances >=0.3.11 && <0.4,+    rerebase ==1.*,+    tasty >=1.0.1 && <1.2,+    tasty-hunit >=0.10 && <0.11,+    tasty-quickcheck >=0.10 && <0.11,+    vector-builder -benchmark foldl-benchmark-  type:-    exitcode-stdio-1.0-  hs-source-dirs:-    foldl-benchmark-  main-is:-    Main.hs-  ghc-options:-    -O2-    -threaded-    "-with-rtsopts=-N"-    -rtsopts-  default-extensions:-    Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples-  default-language:-    Haskell2010-  build-depends:-    vector-builder,-    foldl == 1.2.*,-    -- benchmarking:-    criterion >= 1.1 && < 2,-    -- general:-    rerebase < 2+-- benchmark foldl-benchmark+--   type:+--     exitcode-stdio-1.0+--   hs-source-dirs:+--     foldl-benchmark+--   main-is:+--     Main.hs+--   ghc-options:+--     -O2+--     -threaded+--     "-with-rtsopts=-N"+--     -rtsopts+--   default-extensions:+--     Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples+--   default-language:+--     Haskell2010+--   build-depends:+--     vector-builder,+--     foldl >=1.2 && <2,+--     -- benchmarking:+--     criterion >=1.1 && <2,+--     -- general:+--     rerebase <2 -test-suite foldl-profiling-  type:-    exitcode-stdio-1.0-  hs-source-dirs:-    foldl-profiling-  main-is:-    Main.hs-  ghc-options:-    -O2-    -threaded-    "-with-rtsopts=-N"-    -rtsopts-  default-extensions:-    Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples-  default-language:-    Haskell2010-  build-depends:-    vector-builder,-    foldl == 1.2.*,-    -- benchmarking:-    criterion >= 1.1 && < 2,-    -- general:-    bug == 1.*,-    rerebase < 2+-- test-suite foldl-profiling+--   type:+--     exitcode-stdio-1.0+--   hs-source-dirs:+--     foldl-profiling+--   main-is:+--     Main.hs+--   ghc-options:+--     -O2+--     -threaded+--     "-with-rtsopts=-N"+--     -rtsopts+--   default-extensions:+--     Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples+--   default-language:+--     Haskell2010+--   build-depends:+--     vector-builder,+--     foldl >=1.2 && <2,+--     -- benchmarking:+--     criterion >=1.1 && <2,+--     -- general:+--     bug ==1.*,+--     rerebase <2