packages feed

bytestring-tree-builder 0.2.7.3 → 0.2.7.4

raw patch · 2 files changed

+53/−87 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

bytestring-tree-builder.cabal view
@@ -1,52 +1,31 @@-name:-  bytestring-tree-builder-version:-  0.2.7.3-category:-  ByteString-synopsis:-  A very efficient ByteString builder implementation based on the binary tree+name: bytestring-tree-builder+version: 0.2.7.4+category: ByteString+synopsis: A very efficient ByteString builder implementation based on the binary tree description:   According to   <https://github.com/nikita-volkov/bytestring-builders-benchmark the benchmarks>   this builder implementation beats all the alternatives.   It is especially well-suited for generating strict bytestrings,   beating the standard builder by at least the factor of 4.-homepage:-  https://github.com/nikita-volkov/bytestring-tree-builder -bug-reports:-  https://github.com/nikita-volkov/bytestring-tree-builder/issues -author:-  Nikita Volkov <nikita.y.volkov@mail.ru>-maintainer:-  Nikita Volkov <nikita.y.volkov@mail.ru>-copyright:-  (c) 2015, Nikita Volkov-license:-  MIT-license-file:-  LICENSE-build-type:-  Simple-cabal-version:-  >=1.10-+homepage: https://github.com/nikita-volkov/bytestring-tree-builder+bug-reports: https://github.com/nikita-volkov/bytestring-tree-builder/issues+author: Nikita Volkov <nikita.y.volkov@mail.ru>+maintainer: Nikita Volkov <nikita.y.volkov@mail.ru>+copyright: (c) 2015, 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-tree-builder.git-+  type: git+  location: git://github.com/nikita-volkov/bytestring-tree-builder.git  library-  hs-source-dirs:-    library-  ghc-options:-  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   other-modules:     ByteString.TreeBuilder.Prelude     ByteString.TreeBuilder.Poker@@ -54,62 +33,42 @@   exposed-modules:     ByteString.TreeBuilder   build-depends:-    semigroups >= 0.18 && < 0.20,-    bytestring >= 0.10 && < 0.11,-    text >= 1 && < 2,-    base-prelude < 2,-    base >= 4.6 && < 5-+    base >=4.6 && <5,+    base-prelude <2,+    bytestring >=0.10 && <0.11,+    semigroups >=0.18 && <0.20,+    text >=1 && <2  benchmark benchmark-  type: -    exitcode-stdio-1.0-  hs-source-dirs:-    benchmark-  main-is:-    Main.hs+  type: exitcode-stdio-1.0+  hs-source-dirs: benchmark+  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+  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-tree-builder,-    -- benchmarking:-    criterion >= 1.1 && < 2,-    -- data:+    base-prelude,     bytestring,-    -- general:-    deepseq == 1.*,-    base-prelude-+    bytestring-tree-builder,+    criterion >=1.1 && <2,+    deepseq ==1.*  test-suite tasty-  type:-    exitcode-stdio-1.0-  hs-source-dirs:-    tasty-  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: tasty+  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-tree-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,-    -- data:+    base-prelude,     bytestring,-    -- general:-    base-prelude-+    bytestring-tree-builder,+    QuickCheck >=2.8.1 && <3,+    quickcheck-instances >=0.3.11 && <0.4,+    tasty >=0.12 && <2,+    tasty-hunit >=0.9 && <0.11,+    tasty-quickcheck >=0.9 && <0.11
library/ByteString/TreeBuilder/Poker.hs view
@@ -34,6 +34,13 @@ pokeTree :: E.Tree -> D.Ptr Word8 -> IO (D.Ptr Word8) pokeTree tree ptr =   case tree of-    E.Empty -> pure ptr     E.Leaf bytes -> pokeBytes bytes ptr-    E.Branch tree1 tree2 -> pokeTree tree1 ptr >>= pokeTree tree2+    E.Branch tree1 tree2 -> pokeTreeOnBranch tree1 tree2 ptr+    E.Empty -> pure ptr++pokeTreeOnBranch :: E.Tree -> E.Tree -> D.Ptr Word8 -> IO (D.Ptr Word8)+pokeTreeOnBranch a b ptr =+  case a of+    E.Branch c d -> pokeTreeOnBranch c (E.Branch d b) ptr+    E.Leaf bytes -> pokeBytes bytes ptr >>= pokeTree b+    E.Empty -> pure ptr