bytestring-tree-builder 0.2.6 → 0.2.7
raw patch · 3 files changed
+30/−17 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ ByteString.TreeBuilder: intercalate :: (Foldable f, Monoid m) => m -> f m -> m
Files
- benchmark/Main.hs +18/−12
- bytestring-tree-builder.cabal +4/−4
- library/ByteString/TreeBuilder.hs +8/−1
benchmark/Main.hs view
@@ -11,37 +11,43 @@ defaultMain $ map sampleGroup $ [("Small Input", smallSample), ("Medium Input", mediumSample), ("Large Input", largeSample)]- + sampleGroup :: (String, Sample) -> Benchmark-sampleGroup (title, sample) =+sampleGroup (title, (Sample sample)) = bench title $ nf sample $ (A.byteString, mappend, mempty, A.toByteString) -type Sample =- forall a. (ByteString -> a, a -> a -> a, a, a -> ByteString) -> ByteString+newtype Sample =+ Sample (forall a. (ByteString -> a, a -> a -> a, a, a -> ByteString) -> ByteString) {-# NOINLINE smallSample #-} smallSample :: Sample-smallSample (fromByteString, (<>), mempty, toByteString) =- toByteString $+smallSample =+ Sample $+ \ (fromByteString, (<>), mempty, toByteString) ->+ toByteString $ (fromByteString "hello" <> fromByteString "asdf") <> fromByteString "fsndfn" <> (fromByteString "dfgknfg" <> fromByteString "aaaaaa") {-# NOINLINE mediumSample #-} mediumSample :: Sample-mediumSample (fromByteString, (<>), mempty, toByteString) =- toByteString $- foldl' (<>) mempty $ replicate 1000 $+mediumSample =+ Sample $+ \ (fromByteString, (<>), mempty, toByteString) ->+ toByteString $+ foldl' (<>) mempty $ replicate 1000 $ (fromByteString "hello" <> fromByteString "asdf") <> fromByteString "fsndfn" <> (fromByteString "dfgknfg" <> fromByteString "aaaaaa") {-# NOINLINE largeSample #-} largeSample :: Sample-largeSample (fromByteString, (<>), mempty, toByteString) =- toByteString $- foldl' (<>) mempty $ replicate 100000 $+largeSample =+ Sample $+ \ (fromByteString, (<>), mempty, toByteString) ->+ toByteString $+ foldl' (<>) mempty $ replicate 100000 $ (fromByteString "hello" <> fromByteString "asdf") <> fromByteString "fsndfn" <> (fromByteString "dfgknfg" <> fromByteString "aaaaaa")
bytestring-tree-builder.cabal view
@@ -1,7 +1,7 @@ name: bytestring-tree-builder version:- 0.2.6+ 0.2.7 category: ByteString synopsis:@@ -44,7 +44,7 @@ library ghc-options: default-extensions:- Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, ImpredicativeTypes, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples+ 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 other-modules:@@ -74,7 +74,7 @@ "-with-rtsopts=-N" -funbox-strict-fields default-extensions:- Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveTraversable, DeriveGeneric, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, ImpredicativeTypes, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples+ 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:@@ -97,7 +97,7 @@ main-is: Main.hs default-extensions:- Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, ImpredicativeTypes, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples+ 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:
library/ByteString/TreeBuilder.hs view
@@ -12,6 +12,7 @@ utf8Ord, utf8Text, utf8LazyText,+ intercalate, -- * Execution length, toByteString,@@ -19,7 +20,7 @@ ) where -import ByteString.TreeBuilder.Prelude hiding (foldl, foldr, length)+import ByteString.TreeBuilder.Prelude hiding (foldl, foldr, length, intercalate) import qualified ByteString.TreeBuilder.Tree as A import qualified ByteString.TreeBuilder.Poker as D import qualified ByteString.TreeBuilder.Prelude as F@@ -148,6 +149,12 @@ utf8LazyText :: Data.Text.Lazy.Text -> Builder utf8LazyText = Data.Text.Lazy.foldl' (\builder -> mappend builder . utf8Char) mempty++{-# INLINABLE intercalate #-}+intercalate :: (Foldable f, Monoid m) => m -> f m -> m+intercalate incut =+ fst .+ foldl' (\(acc, incutFn) x -> (incutFn (mappend x acc), mappend incut)) (mempty, id) -- * Execution