packages feed

ascii-string 1.0.1 → 1.0.1.1

raw patch · 3 files changed

+37/−55 lines, 3 filesdep ~deferred-foldsdep ~primitive-extrasPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: deferred-folds, primitive-extras

API changes (from Hackage documentation)

Files

ascii-string.cabal view
@@ -1,38 +1,23 @@-name:-  ascii-string-version:-  1.0.1-synopsis:-  Compact representation of ASCII strings+name: ascii-string+version: 1.0.1.1+synopsis: Compact representation of ASCII strings description:   ASCII strings stored using just 7 bits per character.   Compared to ByteString, this saves you a whole byte per 8 characters.-homepage:-  https://github.com/metrix-ai/ascii-string -bug-reports:-  https://github.com/metrix-ai/ascii-string/issues -author:-  Nikita Volkov <nikita.y.volkov@mail.ru>-maintainer:-  Metrix.AI Tech Team <tech@metrix.ai>-copyright:-  (c) 2018, Metrix.AI-license:-  MIT-license-file:-  LICENSE-build-type:-  Simple-cabal-version:-  >=1.10+homepage: https://github.com/metrix-ai/ascii-string+bug-reports: https://github.com/metrix-ai/ascii-string/issues+author: Nikita Volkov <nikita.y.volkov@mail.ru>+maintainer: Metrix.AI Tech Team <tech@metrix.ai>+copyright: (c) 2018, Metrix.AI+license: MIT+license-file: LICENSE+build-type: Simple+cabal-version: >=1.10  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:     AsciiString   other-modules:@@ -43,21 +28,17 @@     bytestring >=0.10 && <0.11,     cereal >=0.5.5 && <0.6,     deepseq >=1.4 && <2,-    deferred-folds >=0.6.11 && <0.7,+    deferred-folds >=0.7 && <0.8,     foldl >=1.4 && <2,     hashable >=1.2.7 && <2,     primitive >=0.6.4 && <0.7,-    primitive-extras >=0.6.3 && <0.7+    primitive-extras >=0.7 && <0.8  test-suite test-  type:-    exitcode-stdio-1.0-  hs-source-dirs:-    test-  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: test+  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   main-is:     Main.hs   build-depends:
library/AsciiString.hs view
@@ -15,7 +15,7 @@ import qualified Data.List as List import qualified Data.ByteString as ByteString import qualified Data.ByteString.Short.Internal as ShortByteString-import qualified DeferredFolds.UnfoldM as UnfoldM+import qualified DeferredFolds.UnfoldlM as UnfoldlM import qualified AsciiString.FoldMs as FoldMs import qualified Control.Foldl as Foldl import qualified PrimitiveExtras.PrimArray as PrimArray@@ -62,30 +62,30 @@ {-| Construct from a list of septets encoded in 'Word8', ignoring the 8th bit. -} fromSeptetList :: [Word8] -> AsciiString fromSeptetList list = -  fromUnfoldM (List.length list) (UnfoldM.foldable list)+  fromUnfoldlM (List.length list) (UnfoldlM.foldable list)  {-| Convert from ByteString, ignoring each 8th bit in it. -} fromByteString :: ByteString -> AsciiString fromByteString byteString = -  fromUnfoldM (ByteString.length byteString) (UnfoldM.byteStringBytes byteString)+  fromUnfoldlM (ByteString.length byteString) (UnfoldlM.byteStringBytes byteString)  {-| Convert from ShortByteString, ignoring each 8th bit in it. -} fromShortByteString :: ShortByteString -> AsciiString fromShortByteString byteString =-  fromUnfoldM (ShortByteString.length byteString) (UnfoldM.shortByteStringBytes byteString)+  fromUnfoldlM (ShortByteString.length byteString) (UnfoldlM.shortByteStringBytes byteString) -{-# INLINE fromUnfoldM #-}-fromUnfoldM :: Int -> UnfoldM IO Word8 -> AsciiString-fromUnfoldM size unfoldM =-  AsciiString size (unsafeDupablePerformIO (UnfoldM.foldM (FoldMs.sizedSeptetPrimArrayFromSeptets size) unfoldM))+{-# INLINE fromUnfoldlM #-}+fromUnfoldlM :: Int -> UnfoldlM IO Word8 -> AsciiString+fromUnfoldlM size unfoldM =+  AsciiString size (unsafeDupablePerformIO (UnfoldlM.foldM (FoldMs.sizedSeptetPrimArrayFromSeptets size) unfoldM))  {-| Convert to a list of septets represented by 'Word8' with the 8th bit always empty. -} toSeptetList :: AsciiString -> [Word8]-toSeptetList = unsafeDupablePerformIO . UnfoldM.foldM (Foldl.generalize Foldl.list) . toOctetUnfoldM+toSeptetList = unsafeDupablePerformIO . UnfoldlM.foldM (Foldl.generalize Foldl.list) . toOctetUnfoldlM  {-| Convert to bytestring. -} toByteString :: AsciiString -> ByteString@@ -97,11 +97,11 @@   primArraySBS :: PrimArray Word8 -> ShortByteString   primArraySBS (PrimArray ba) = ShortByteString.SBS ba -toOctetUnfoldM :: AsciiString -> UnfoldM IO Word8-toOctetUnfoldM (AsciiString size pa) = let+toOctetUnfoldlM :: AsciiString -> UnfoldlM IO Word8+toOctetUnfoldlM (AsciiString size pa) = let   takeLast = rem (7 * succ size) 8 /= 0-  in UnfoldM.mapFoldMInput (FoldMs.overSeptets takeLast) (UnfoldM.primArray pa)+  in UnfoldlM.mapFoldMInput (FoldMs.overSeptets takeLast) (UnfoldlM.primArray pa)  runSizedFoldM :: (Int -> FoldM IO Word8 output) -> AsciiString -> IO output runSizedFoldM fold asciiString =-  UnfoldM.foldM (fold (length asciiString)) (toOctetUnfoldM asciiString)+  UnfoldlM.foldM (fold (length asciiString)) (toOctetUnfoldlM asciiString)
library/AsciiString/Prelude.hs view
@@ -91,8 +91,9 @@  -- deferred-folds --------------------------import DeferredFolds.Unfold as Exports (Unfold(..))-import DeferredFolds.UnfoldM as Exports (UnfoldM(..))+import DeferredFolds.Unfoldl as Exports (Unfoldl(..))+import DeferredFolds.UnfoldlM as Exports (UnfoldlM(..))+import DeferredFolds.Unfoldr as Exports (Unfoldr(..))  -- hashable -------------------------