packages feed

bytestring-strict-builder 0.4.5.3 → 0.4.5.4

raw patch · 5 files changed

+129/−91 lines, 5 filesdep −base-preludedep −semigroupsdep ~basedep ~bytestringdep ~criterionPVP ok

version bump matches the API change (PVP)

Dependencies removed: base-prelude, semigroups

Dependency ranges changed: base, bytestring, criterion, rerebase, tasty, tasty-hunit, tasty-quickcheck

API changes (from Hackage documentation)

Files

bytestring-strict-builder.cabal view
@@ -1,11 +1,7 @@-name:-  bytestring-strict-builder-version:-  0.4.5.3-category:-  Text, ByteString, Builders, Serialization-synopsis:-  An efficient strict bytestring builder+name: bytestring-strict-builder+version: 0.4.5.4+category: Text, ByteString, Builders, Serialization+synopsis: An efficient strict bytestring builder description:   According to    <https://github.com/nikita-volkov/bytestring-builders-benchmark the competition benchmarks>, @@ -15,38 +11,24 @@   The encoders from the \"postgresql-binary\" library have shown   a stable performance improvement by factors of up to 10 after the migration   from the standard builder to \"bytestring-strict-builder\".-homepage:-  https://github.com/nikita-volkov/bytestring-strict-builder -bug-reports:-  https://github.com/nikita-volkov/bytestring-strict-builder/issues -author:-  Nikita Volkov <nikita.y.volkov@mail.ru>-maintainer:-  Nikita Volkov <nikita.y.volkov@mail.ru>-copyright:-  (c) 2017, Nikita Volkov-license:-  MIT-license-file:-  LICENSE-build-type:-  Simple-cabal-version:-  >=1.10+homepage: https://github.com/nikita-volkov/bytestring-strict-builder+bug-reports: https://github.com/nikita-volkov/bytestring-strict-builder/issues+author: Nikita Volkov <nikita.y.volkov@mail.ru>+maintainer: Nikita Volkov <nikita.y.volkov@mail.ru>+copyright: (c) 2017, 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/bytestring-strict-builder.git+  type: git+  location: git://github.com/nikita-volkov/bytestring-strict-builder.git  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+  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   exposed-modules:     ByteString.StrictBuilder   other-modules:@@ -55,50 +37,32 @@     ByteString.StrictBuilder.Population.UncheckedShifting     ByteString.StrictBuilder.UTF8   build-depends:-    semigroups >= 0.18 && < 0.20,-    bytestring >= 0.10.2 && < 0.11,-    base-prelude >= 1.2 && < 2,-    base >= 4.6 && < 5+    base >=4.11 && <5,+    bytestring >=0.10.2 && <0.12  test-suite tests-  type:-    exitcode-stdio-1.0-  hs-source-dirs:-    tests-  main-is:-    Main.hs-  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+  type: exitcode-stdio-1.0+  hs-source-dirs: tests+  main-is: Main.hs+  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:     bytestring-strict-builder,-    -- testing:-    tasty >= 0.12 && < 2,-    tasty-quickcheck >= 0.9 && < 0.11,-    tasty-hunit >= 0.9 && < 0.11,-    quickcheck-instances >= 0.3.11 && < 0.4,-    QuickCheck >= 2.8.1 && < 3,-    -- general:-    rerebase == 1.*+    QuickCheck >=2.8.1 && <3,+    quickcheck-instances >=0.3.11 && <0.4,+    rerebase >=1.10 && <2,+    tasty >=1.4 && <2,+    tasty-hunit >=0.10 && <0.11,+    tasty-quickcheck >=0.10 && <0.11  benchmark benchmarks-  type:-    exitcode-stdio-1.0-  hs-source-dirs:-    benchmarks-  main-is:-    Main.hs-  ghc-options:-    -O2-    -threaded-    "-with-rtsopts=-N"-    -funbox-strict-fields-  default-extensions:-    Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveTraversable, DeriveGeneric, 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+  type: exitcode-stdio-1.0+  hs-source-dirs: benchmarks+  main-is: Main.hs+  ghc-options: -O2 -threaded "-with-rtsopts=-N" -funbox-strict-fields+  default-extensions: Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveTraversable, DeriveGeneric, 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:     bytestring-strict-builder,-    criterion >= 1.1 && < 1.6,-    rerebase == 1.*+    criterion >=1.5.9 && <1.6,+    rerebase >=1.10 && <2
library/ByteString/StrictBuilder.hs view
@@ -34,13 +34,22 @@ data Builder =   Builder !Int !A.Population +instance Semigroup Builder where+  (<>) (Builder leftSize leftPopulation) (Builder rightSize rightPopulation) =+    Builder (leftSize + rightSize) (leftPopulation <> rightPopulation)+  {-# INLINE sconcat #-}+  sconcat builders =+    Builder size population+    where+      size =+        foldl' (\acc (Builder x _) -> acc + x) 0 builders+      population =+        foldMap (\(Builder _ x) -> x) builders+ instance Monoid Builder where   {-# INLINE mempty #-}   mempty =     Builder 0 mempty-  {-# INLINE mappend #-}-  mappend (Builder leftSize leftPopulation) (Builder rightSize rightPopulation) =-    Builder (leftSize + rightSize) (leftPopulation <> rightPopulation)   {-# INLINE mconcat #-}   mconcat builders =     Builder size population@@ -49,9 +58,6 @@         foldl' (\acc (Builder x _) -> acc + x) 0 builders       population =         foldMap (\(Builder _ x) -> x) builders--instance Semigroup Builder where-  (<>) = mappend  instance IsString Builder where   fromString =
library/ByteString/StrictBuilder/Population.hs view
@@ -12,16 +12,14 @@ newtype Population =   Population { populationPtrUpdate :: Ptr Word8 -> IO (Ptr Word8) } +instance Semigroup Population where+  (<>) (Population leftPtrUpdate) (Population rightPtrUpdate) =+    Population (leftPtrUpdate >=> rightPtrUpdate)+ instance Monoid Population where   {-# INLINE mempty #-}   mempty =     Population return-  {-# INLINE mappend #-}-  mappend (Population leftPtrUpdate) (Population rightPtrUpdate) =-    Population (leftPtrUpdate >=> rightPtrUpdate)--instance Semigroup Population where-  (<>) = mappend   {-|
library/ByteString/StrictBuilder/Prelude.hs view
@@ -4,6 +4,76 @@ ) where -import BasePrelude as Exports+-- base+-------------------------+import Control.Applicative as Exports hiding (WrappedArrow(..))+import Control.Arrow as Exports hiding (first, second)+import Control.Category as Exports+import Control.Concurrent as Exports+import Control.Exception as Exports+import Control.Monad as Exports hiding (fail, mapM_, sequence_, forM_, msum, mapM, sequence, forM)+import Control.Monad.IO.Class as Exports+import Control.Monad.Fail as Exports+import Control.Monad.Fix as Exports hiding (fix)+import Control.Monad.ST as Exports+import Data.Bifunctor as Exports+import Data.Bits as Exports+import Data.Bool as Exports+import Data.Char as Exports+import Data.Coerce as Exports+import Data.Complex as Exports+import Data.Data as Exports+import Data.Dynamic as Exports+import Data.Either as Exports+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.Compose as Exports+import Data.Int as Exports+import Data.IORef as Exports+import Data.Ix as Exports+import Data.List as Exports hiding (sortOn, isSubsequenceOf, uncons, concat, foldr, foldl1, maximum, minimum, product, sum, all, and, any, concatMap, elem, foldl, foldr1, notElem, or, find, maximumBy, minimumBy, mapAccumL, mapAccumR, foldl')+import Data.List.NonEmpty as Exports (NonEmpty(..))+import Data.Maybe as Exports+import Data.Monoid as Exports hiding (Alt, (<>))+import Data.Ord as Exports+import Data.Proxy as Exports+import Data.Ratio as Exports+import Data.Semigroup as Exports hiding (First(..), Last(..))+import Data.STRef as Exports+import Data.String as Exports+import Data.Traversable as Exports+import Data.Tuple as Exports+import Data.Unique as Exports+import Data.Version as Exports+import Data.Void as Exports+import Data.Word as Exports+import Debug.Trace as Exports+import Foreign.ForeignPtr as Exports+import Foreign.Ptr as Exports+import Foreign.StablePtr as Exports+import Foreign.Storable as Exports+import GHC.Conc as Exports hiding (orElse, withMVar, threadWaitWriteSTM, threadWaitWrite, threadWaitReadSTM, threadWaitRead)+import GHC.Exts as Exports (IsList(..), lazy, inline, sortWith, groupWith)+import GHC.Generics as Exports (Generic)+import GHC.IO.Exception as Exports+import GHC.OverloadedLabels as Exports+import Numeric as Exports+import Prelude as Exports hiding (Read, fail, concat, foldr, mapM_, sequence_, foldl1, maximum, minimum, product, sum, all, and, any, concatMap, elem, foldl, foldr1, notElem, or, mapM, sequence, id, (.))+import System.Environment as Exports+import System.Exit as Exports+import System.IO as Exports (Handle, hClose)+import System.IO.Error as Exports+import System.IO.Unsafe as Exports+import System.Mem as Exports+import System.Mem.StableName as Exports+import System.Timeout as Exports+import Text.ParserCombinators.ReadP as Exports (ReadP, readP_to_S, readS_to_P)+import Text.ParserCombinators.ReadPrec as Exports (ReadPrec, readPrec_to_P, readP_to_Prec, readPrec_to_S, readS_to_Prec)+import Text.Printf as Exports (printf, hPrintf)+import Unsafe.Coerce as Exports++-- bytestring+------------------------- import Data.ByteString as Exports (ByteString)-import Data.Semigroup as Exports hiding ((<>), Last(..), First(..))
library/ByteString/StrictBuilder/UTF8.hs view
@@ -19,8 +19,8 @@  {-# INLINE char #-} char :: Char -> UTF8Char-char =-  unicodeCodePoint . ord+char x =+  unicodeCodePoint (ord x)  {-# INLINE unicodeCodePoint #-} unicodeCodePoint :: Int -> UTF8Char