attoparsec 0.13.2.4 → 0.13.2.5
raw patch · 4 files changed
+53/−15 lines, 4 filesdep ~QuickCheckdep ~bytestringdep ~ghc-primPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: QuickCheck, bytestring, ghc-prim
API changes (from Hackage documentation)
- Data.Attoparsec.ByteString.Char8: instance (a Data.Type.Equality.~ Data.ByteString.Internal.ByteString) => Data.String.IsString (Data.Attoparsec.ByteString.Internal.Parser a)
+ Data.Attoparsec.ByteString.Char8: instance (a GHC.Types.~ Data.ByteString.Internal.ByteString) => Data.String.IsString (Data.Attoparsec.ByteString.Internal.Parser a)
Files
- Data/Attoparsec/ByteString/Buffer.hs +6/−5
- Data/Attoparsec/ByteString/Internal.hs +2/−1
- Data/Attoparsec/Internal/Compat.hs +27/−0
- attoparsec.cabal +18/−9
Data/Attoparsec/ByteString/Buffer.hs view
@@ -56,6 +56,7 @@ import Control.Exception (assert) import Data.ByteString.Internal (ByteString(..), memcpy, nullForeignPtr) import Data.Attoparsec.Internal.Fhthagn (inlinePerformIO)+import Data.Attoparsec.Internal.Compat import Data.List (foldl1') import Data.Monoid as Mon (Monoid(..)) import Data.Semigroup (Semigroup(..))@@ -82,10 +83,10 @@ -- copies in the (hopefully) common case of no further input being fed -- to us. buffer :: ByteString -> Buffer-buffer (PS fp off len) = Buf fp off len len 0+buffer bs = withPS bs $ \fp off len -> Buf fp off len len 0 unbuffer :: Buffer -> ByteString-unbuffer (Buf fp off len _ _) = PS fp off len+unbuffer (Buf fp off len _ _) = mkPS fp off len instance Semigroup Buffer where (Buf _ _ _ 0 _) <> b = b@@ -102,7 +103,7 @@ pappend :: Buffer -> ByteString -> Buffer pappend (Buf _ _ _ 0 _) bs = buffer bs-pappend buf (PS fp off len) = append buf fp off len+pappend buf bs = withPS bs $ \fp off len -> append buf fp off len append :: Buffer -> ForeignPtr a -> Int -> Int -> Buffer append (Buf fp0 off0 len0 cap0 gen0) !fp1 !off1 !len1 =@@ -146,11 +147,11 @@ substring s l (Buf fp off len _ _) = assert (s >= 0 && s <= len) . assert (l >= 0 && l <= len-s) $- PS fp (off+s) l+ mkPS fp (off+s) l {-# INLINE substring #-} unsafeDrop :: Int -> Buffer -> ByteString unsafeDrop s (Buf fp off len _ _) = assert (s >= 0 && s <= len) $- PS fp (off+s) (len-s)+ mkPS fp (off+s) (len-s) {-# INLINE unsafeDrop #-}
Data/Attoparsec/ByteString/Internal.hs view
@@ -75,6 +75,7 @@ import Data.Attoparsec.ByteString.FastSet (charClass, memberWord8) import Data.Attoparsec.Combinator ((<?>)) import Data.Attoparsec.Internal+import Data.Attoparsec.Internal.Compat import Data.Attoparsec.Internal.Fhthagn (inlinePerformIO) import Data.Attoparsec.Internal.Types hiding (Parser, Failure, Success) import Data.ByteString (ByteString)@@ -303,7 +304,7 @@ scan_ f s0 p = go [] s0 where go acc s1 = do- let scanner (B.PS fp off len) =+ let scanner bs = withPS bs $ \fp off len -> withForeignPtr fp $ \ptr0 -> do let start = ptr0 `plusPtr` off end = start `plusPtr` len
+ Data/Attoparsec/Internal/Compat.hs view
@@ -0,0 +1,27 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE MagicHash #-}+module Data.Attoparsec.Internal.Compat where++import Data.ByteString.Internal (ByteString(..))+import Data.Word (Word8)+import Foreign.ForeignPtr (ForeignPtr)++#if MIN_VERSION_bytestring(0,11,0)+import Data.ByteString.Internal (plusForeignPtr)+#endif++withPS :: ByteString -> (ForeignPtr Word8 -> Int -> Int -> r) -> r+#if MIN_VERSION_bytestring(0,11,0)+withPS (BS fp len) kont = kont fp 0 len+#else+withPS (PS fp off len) kont = kont fp off len+#endif+{-# INLINE withPS #-}++mkPS :: ForeignPtr Word8 -> Int -> Int -> ByteString+#if MIN_VERSION_bytestring(0,11,0)+mkPS fp off len = BS (plusForeignPtr fp off) len+#else+mkPS fp off len = PS fp off len+#endif+{-# INLINE mkPS #-}
attoparsec.cabal view
@@ -1,16 +1,16 @@ name: attoparsec-version: 0.13.2.4+version: 0.13.2.5 license: BSD3 license-file: LICENSE category: Text, Parsing author: Bryan O'Sullivan <bos@serpentine.com> maintainer: Bryan O'Sullivan <bos@serpentine.com>, Ben Gamari <ben@smart-cactus.org> stability: experimental-tested-with: GHC == 7.0.4, GHC == 7.2.2, GHC == 7.4.2, GHC ==7.6.3, GHC ==7.8.4, GHC ==7.10.3, GHC ==8.0.2, GHC ==8.2.2, GHC==8.4.4, GHC==8.6.5, GHC==8.8.1, GHC==8.10.1+tested-with: GHC == 7.4.2, GHC ==7.6.3, GHC ==7.8.4, GHC ==7.10.3, GHC ==8.0.2, GHC ==8.2.2, GHC==8.4.4, GHC==8.6.5, GHC==8.8.1, GHC==8.10.1 synopsis: Fast combinator parsing for bytestrings and text-cabal-version: >= 1.8-homepage: https://github.com/bos/attoparsec-bug-reports: https://github.com/bos/attoparsec/issues+cabal-version: 2.0+homepage: https://github.com/bgamari/attoparsec+bug-reports: https://github.com/bgamari/attoparsec/issues build-type: Simple description: A fast parser combinator library, aimed particularly at dealing@@ -40,12 +40,13 @@ library build-depends: array, base >= 4.3 && < 5,- bytestring,+ bytestring <0.12, containers, deepseq, scientific >= 0.3.1 && < 0.4, transformers >= 0.2 && (< 0.4 || >= 0.4.1.0) && < 0.6,- text >= 1.1.1.3+ text >= 1.1.1.3,+ ghc-prim <0.7 if impl(ghc < 7.4) build-depends: bytestring < 0.10.4.0@@ -72,12 +73,15 @@ other-modules: Data.Attoparsec.ByteString.Buffer Data.Attoparsec.ByteString.FastSet Data.Attoparsec.ByteString.Internal+ Data.Attoparsec.Internal.Compat Data.Attoparsec.Internal.Fhthagn Data.Attoparsec.Text.Buffer Data.Attoparsec.Text.FastSet Data.Attoparsec.Text.Internal ghc-options: -O2 -Wall + default-language: Haskell2010+ if flag(developer) ghc-prof-options: -auto-all ghc-options: -Werror@@ -106,6 +110,7 @@ Data.Attoparsec.ByteString.Lazy Data.Attoparsec.Combinator Data.Attoparsec.Internal+ Data.Attoparsec.Internal.Compat Data.Attoparsec.Internal.Fhthagn Data.Attoparsec.Internal.Types Data.Attoparsec.Number@@ -127,7 +132,7 @@ base, bytestring, deepseq >= 1.1,- QuickCheck >= 2.13.2 && < 2.14,+ QuickCheck >= 2.13.2 && < 2.15, quickcheck-unicode, scientific, tasty >= 0.11,@@ -136,6 +141,8 @@ transformers, vector + default-language: Haskell2010+ if !impl(ghc >= 8.0) -- Data.Semigroup && Control.Monad.Fail are available in base-4.9+ build-depends: fail == 4.9.*,@@ -182,6 +189,8 @@ unordered-containers, vector + default-language: Haskell2010+ if !impl(ghc >= 8.0) -- Data.Semigroup && Control.Monad.Fail are available in base-4.9+ build-depends: fail == 4.9.*,@@ -189,5 +198,5 @@ source-repository head type: git- location: https://github.com/bos/attoparsec+ location: https://github.com/bgamari/attoparsec