packages feed

vector-builder 0.3.8.4 → 0.3.8.5

raw patch · 10 files changed

+133/−85 lines, 10 filesdep −QuickCheck

Dependencies removed: QuickCheck

Files

library/VectorBuilder/Alternative.hs view
@@ -3,7 +3,6 @@ -- For instance, they can be applied with parsing libraries. module VectorBuilder.Alternative where -import Data.Vector (Vector) import qualified Data.Vector.Generic as C import qualified VectorBuilder.Builder as A import VectorBuilder.Prelude hiding (many, some)@@ -14,7 +13,7 @@ many = fmap B.build . manyBuilder  {-# INLINEABLE manyBuilder #-}-manyBuilder :: Alternative m => m a -> m (A.Builder a)+manyBuilder :: (Alternative m) => m a -> m (A.Builder a) manyBuilder m =   let loop = ((<>) <$> A.singleton <$> m <*> loop) <|> pure mempty    in loop@@ -24,5 +23,5 @@ some m = B.build <$> someBuilder m  {-# INLINEABLE someBuilder #-}-someBuilder :: Alternative m => m a -> m (A.Builder a)+someBuilder :: (Alternative m) => m a -> m (A.Builder a) someBuilder m = (<>) <$> A.singleton <$> m <*> manyBuilder m
library/VectorBuilder/Core/Builder.hs view
@@ -1,7 +1,6 @@ module VectorBuilder.Core.Builder where  import qualified Data.Vector.Generic as B-import qualified Data.Vector.Generic.Mutable as C import qualified VectorBuilder.Core.Update as A import VectorBuilder.Prelude hiding (concat, empty) @@ -39,12 +38,12 @@ -- -- Supports all kinds of vectors: boxed, unboxed, primitive, storable. {-# INLINE vector #-}-vector :: B.Vector vector element => vector element -> Builder element+vector :: (B.Vector vector element) => vector element -> Builder element vector vector =   Builder (B.length vector) (A.writeMany vector)  {-# INLINE foldable #-}-foldable :: Foldable foldable => foldable element -> Builder element+foldable :: (Foldable foldable) => foldable element -> Builder element foldable foldable =   Builder (length foldable) (A.writeFoldable foldable) @@ -71,7 +70,7 @@   flip prepend  {-# INLINE concat #-}-concat :: Foldable foldable => foldable (Builder element) -> Builder element+concat :: (Foldable foldable) => foldable (Builder element) -> Builder element concat builders =   Builder     ( let step size (Builder builderSize _) = size + builderSize
library/VectorBuilder/Core/Update.hs view
@@ -5,7 +5,7 @@ import VectorBuilder.Prelude  newtype Update element-  = Update (forall s vector. A.MVector vector element => vector s element -> Int -> ST s ())+  = Update (forall s vector. (A.MVector vector element) => vector s element -> Int -> ST s ())  {-# INLINE write #-} write :: element -> Update element@@ -13,7 +13,7 @@   Update (\mVector offset -> A.unsafeWrite mVector offset element)  {-# INLINE writeMany #-}-writeMany :: B.Vector vector element => vector element -> Update element+writeMany :: (B.Vector vector element) => vector element -> Update element writeMany appendedVector =   Update (\mVector offset -> B.ifoldM' (\_ index element -> A.unsafeWrite mVector (strict (offset + index)) element) () appendedVector) @@ -28,6 +28,6 @@   Update (\_ _ -> pure ())  {-# INLINE writeFoldable #-}-writeFoldable :: Foldable foldable => foldable element -> Update element+writeFoldable :: (Foldable foldable) => foldable element -> Update element writeFoldable foldable =   Update (\mVector offset -> foldM_ (\index element -> A.unsafeWrite mVector index element $> succ index) offset foldable)
library/VectorBuilder/MVector.hs view
@@ -12,7 +12,7 @@ -- -- Supports all kinds of vectors: boxed, unboxed, primitive, storable. {-# INLINEABLE build #-}-build :: MVector vector element => A.Builder element -> ST s (vector s element)+build :: (MVector vector element) => A.Builder element -> ST s (vector s element) build (A.Builder size (C.Update update)) =   do     vector <- unsafeNew size
library/VectorBuilder/MonadPlus.hs view
@@ -3,7 +3,6 @@ -- For instance, they can be applied with parsing libraries. module VectorBuilder.MonadPlus where -import Data.Vector (Vector) import qualified Data.Vector.Generic as C import qualified VectorBuilder.Builder as A import VectorBuilder.Prelude
library/VectorBuilder/Prelude.hs view
@@ -26,7 +26,7 @@ import Data.Fixed as Exports import Data.Foldable as Exports hiding (toList) import Data.Function as Exports hiding (id, (.))-import Data.Functor as Exports+import Data.Functor as Exports hiding (unzip) import Data.Functor.Compose as Exports import Data.IORef as Exports import Data.Int as Exports@@ -65,8 +65,6 @@ import System.Mem as Exports import System.Mem.StableName as Exports import System.Timeout as Exports-import Text.ParserCombinators.ReadP as Exports (ReadP, ReadS, readP_to_S, readS_to_P)-import Text.ParserCombinators.ReadPrec as Exports (ReadPrec, readP_to_Prec, readPrec_to_P, readPrec_to_S, readS_to_Prec) import Text.Printf as Exports (hPrintf, printf) import Text.Read as Exports (Read (..), readEither, readMaybe) import Unsafe.Coerce as Exports
library/VectorBuilder/Vector.hs view
@@ -12,6 +12,6 @@ -- -- Supports all kinds of vectors: boxed, unboxed, primitive, storable. {-# INLINE build #-}-build :: Vector vector element => A.Builder element -> vector element+build :: (Vector vector element) => A.Builder element -> vector element build builder =   runST (B.build builder >>= unsafeFreeze)
tests/Main.hs view
@@ -7,27 +7,27 @@ import Test.Tasty import Test.Tasty.HUnit import Test.Tasty.QuickCheck-import Test.Tasty.Runners import qualified VectorBuilder.Alternative as F import qualified VectorBuilder.Builder as A import qualified VectorBuilder.MonadPlus as H import qualified VectorBuilder.Vector as B import Prelude +main :: IO () main =-  defaultMain $-    testGroup+  defaultMain+    $ testGroup       "All tests"       [ testProperty "samples" $ \(samples :: [C.Sample Int]) ->           foldMap C.toVector samples             === B.build (foldMap C.toBuilder samples),-        testCase "Alternative.some" $-          assertEqual+        testCase "Alternative.some"+          $ assertEqual             ""             (Right (E.fromList "1234"))             (D.parseOnly (F.some D.anyChar) "1234"),-        testCase "Alternative.some on empty" $-          assertEqual+        testCase "Alternative.some on empty"+          $ assertEqual             ""             (Left "not enough input")             (D.parseOnly (F.some D.anyChar :: D.Parser (Vector Char)) ""),
tests/Main/Sample.hs view
@@ -1,7 +1,7 @@ module Main.Sample where  import qualified Data.Vector as B-import Test.QuickCheck.Instances+import Test.QuickCheck.Instances () import qualified Test.Tasty.QuickCheck as C import qualified VectorBuilder.Builder as A import Prelude@@ -29,7 +29,7 @@     Vector a -> a     List a -> B.fromList a -instance C.Arbitrary a => C.Arbitrary (Sample a) where+instance (C.Arbitrary a) => C.Arbitrary (Sample a) where   arbitrary =     do       constructorIndex <- C.choose (0 :: Int, 3)@@ -38,3 +38,4 @@         1 -> C.arbitrary >>= return . Singleton         2 -> C.arbitrary >>= return . Vector         3 -> C.arbitrary >>= return . List+        _ -> error "Bug"
vector-builder.cabal view
@@ -1,9 +1,6 @@-name:-  vector-builder-version:-  0.3.8.4-synopsis:-  Vector builder+name:          vector-builder+version:       0.3.8.5+synopsis:      Vector builder description:   An API for efficient and convenient construction of vectors.   It provides the composable `Builder` abstraction, which has instances of the `Monoid` and `Semigroup` classes.@@ -31,73 +28,128 @@   >      B.vector vector <>   >      B.foldable list <>   >      B.singleton element-category:-  Vector-homepage:-  https://github.com/nikita-volkov/vector-builder-bug-reports:-  https://github.com/nikita-volkov/vector-builder/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-build-type:-  Simple-cabal-version:-  >=1.10 +category:      Vector+homepage:      https://github.com/nikita-volkov/vector-builder+bug-reports:   https://github.com/nikita-volkov/vector-builder/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+build-type:    Simple+cabal-version: >=1.10+ source-repository head-  type:-    git-  location:-    git://github.com/nikita-volkov/vector-builder.git+  type:     git+  location: git://github.com/nikita-volkov/vector-builder.git  library-  hs-source-dirs:-    library+  hs-source-dirs:     library   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+    NoImplicitPrelude+    NoMonomorphismRestriction+    Arrows+    BangPatterns+    ConstraintKinds+    DataKinds+    DefaultSignatures+    DeriveDataTypeable+    DeriveFoldable+    DeriveFunctor+    DeriveGeneric+    DeriveTraversable+    EmptyDataDecls+    FlexibleContexts+    FlexibleInstances+    FunctionalDependencies+    GADTs+    GeneralizedNewtypeDeriving+    LambdaCase+    LiberalTypeSynonyms+    MagicHash+    MultiParamTypeClasses+    MultiWayIf+    OverloadedStrings+    ParallelListComp+    PatternGuards+    QuasiQuotes+    RankNTypes+    RecordWildCards+    ScopedTypeVariables+    StandaloneDeriving+    TemplateHaskell+    TupleSections+    TypeFamilies+    TypeOperators+    UnboxedTuples++  default-language:   Haskell2010   exposed-modules:+    VectorBuilder.Alternative     VectorBuilder.Builder+    VectorBuilder.MonadPlus     VectorBuilder.MVector     VectorBuilder.Vector-    VectorBuilder.MonadPlus-    VectorBuilder.Alternative+   other-modules:-    VectorBuilder.Prelude-    VectorBuilder.Core.Update     VectorBuilder.Core.Builder+    VectorBuilder.Core.Update+    VectorBuilder.Prelude+   build-depends:-    vector >=0.12 && <0.14,-    base >=4.10 && <5+      base >=4.10 && <5+    , vector >=0.12 && <0.14  test-suite tests-  type:-    exitcode-stdio-1.0-  hs-source-dirs:-    tests-  main-is:-    Main.hs-  other-modules:-    Main.Sample+  type:               exitcode-stdio-1.0+  hs-source-dirs:     tests+  main-is:            Main.hs+  other-modules:      Main.Sample   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+    NoImplicitPrelude+    NoMonomorphismRestriction+    Arrows+    BangPatterns+    ConstraintKinds+    DataKinds+    DefaultSignatures+    DeriveDataTypeable+    DeriveFoldable+    DeriveFunctor+    DeriveGeneric+    DeriveTraversable+    EmptyDataDecls+    FlexibleContexts+    FlexibleInstances+    FunctionalDependencies+    GADTs+    GeneralizedNewtypeDeriving+    LambdaCase+    LiberalTypeSynonyms+    MagicHash+    MultiParamTypeClasses+    MultiWayIf+    OverloadedStrings+    ParallelListComp+    PatternGuards+    QuasiQuotes+    RankNTypes+    RecordWildCards+    ScopedTypeVariables+    StandaloneDeriving+    TemplateHaskell+    TupleSections+    TypeFamilies+    TypeOperators+    UnboxedTuples++  default-language:   Haskell2010   build-depends:-    attoparsec >=0.13 && <0.15,-    QuickCheck >=2.8.1 && <3,-    quickcheck-instances >=0.3.11 && <0.4,-    rerebase <2,-    tasty >=0.12 && <2,-    tasty-hunit >=0.9 && <0.11,-    tasty-quickcheck >=0.9 && <0.11,-    vector-builder+      attoparsec >=0.13 && <0.15+    , quickcheck-instances >=0.3.11 && <0.4+    , rerebase <2+    , tasty >=0.12 && <2+    , tasty-hunit >=0.9 && <0.11+    , tasty-quickcheck >=0.9 && <0.11+    , vector-builder