Hello community, here is the log from the commit of package ghc-attoparsec for openSUSE:Factory checked in at 2019-10-18 14:33:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-attoparsec (Old) and /work/SRC/openSUSE:Factory/.ghc-attoparsec.new.2352 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-attoparsec" Fri Oct 18 14:33:46 2019 rev:16 rq:737192 version:0.13.2.3 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-attoparsec/ghc-attoparsec.changes 2019-06-19 21:11:53.066712428 +0200 +++ /work/SRC/openSUSE:Factory/.ghc-attoparsec.new.2352/ghc-attoparsec.changes 2019-10-18 14:33:47.812182604 +0200 @@ -1,0 +2,7 @@ +Sun Sep 1 02:02:19 UTC 2019 - [email protected] + +- Update attoparsec to version 0.13.2.3. + Upstream has not updated the file "changelog.md" since the last + release. + +------------------------------------------------------------------- Old: ---- attoparsec-0.13.2.2.tar.gz New: ---- attoparsec-0.13.2.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-attoparsec.spec ++++++ --- /var/tmp/diff_new_pack.rkpWFS/_old 2019-10-18 14:33:48.624180490 +0200 +++ /var/tmp/diff_new_pack.rkpWFS/_new 2019-10-18 14:33:48.624180490 +0200 @@ -19,14 +19,14 @@ %global pkg_name attoparsec %bcond_with tests Name: ghc-%{pkg_name} -Version: 0.13.2.2 +Version: 0.13.2.3 Release: 0 Summary: Fast combinator parsing for bytestrings and text License: BSD-3-Clause Group: Development/Libraries/Haskell URL: https://hackage.haskell.org/package/%{pkg_name} Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz -Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/3.cabal#/%{pkg_name}.cabal +Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal#/%{pkg_name}.cabal BuildRequires: ghc-Cabal-devel BuildRequires: ghc-array-devel BuildRequires: ghc-bytestring-devel ++++++ attoparsec-0.13.2.2.tar.gz -> attoparsec-0.13.2.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attoparsec-0.13.2.2/Data/Attoparsec/Internal/Types.hs new/attoparsec-0.13.2.3/Data/Attoparsec/Internal/Types.hs --- old/attoparsec-0.13.2.2/Data/Attoparsec/Internal/Types.hs 2018-01-12 23:56:55.000000000 +0100 +++ new/attoparsec-0.13.2.3/Data/Attoparsec/Internal/Types.hs 2019-08-31 11:36:08.000000000 +0200 @@ -1,4 +1,4 @@ -{-# LANGUAGE BangPatterns, GeneralizedNewtypeDeriving, OverloadedStrings, +{-# LANGUAGE CPP, BangPatterns, GeneralizedNewtypeDeriving, OverloadedStrings, Rank2Types, RecordWildCards, TypeFamilies #-} -- | -- Module : Data.Attoparsec.Internal.Types @@ -39,7 +39,7 @@ import Data.Text (Text) import qualified Data.Text as Text import Data.Text.Unsafe (Iter(..)) -import Prelude hiding (getChar, succ) +import Prelude hiding (succ) import qualified Data.Attoparsec.ByteString.Buffer as B import qualified Data.Attoparsec.Text.Buffer as T @@ -136,8 +136,10 @@ mempty = Incomplete instance Monad (Parser i) where +#if !(MIN_VERSION_base(4,13,0)) fail = Fail.fail {-# INLINE fail #-} +#endif return = App.pure {-# INLINE return #-} @@ -207,8 +209,9 @@ {-# INLINE (<|>) #-} many v = many_v - where many_v = some_v <|> pure [] - some_v = (:) App.<$> v <*> many_v + where + many_v = some_v <|> pure [] + some_v = (:) <$> v <*> many_v {-# INLINE many #-} some v = some_v diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attoparsec-0.13.2.2/Data/Attoparsec/Zepto.hs new/attoparsec-0.13.2.3/Data/Attoparsec/Zepto.hs --- old/attoparsec-0.13.2.2/Data/Attoparsec/Zepto.hs 2018-01-12 23:56:55.000000000 +0100 +++ new/attoparsec-0.13.2.3/Data/Attoparsec/Zepto.hs 2019-08-31 11:36:08.000000000 +0200 @@ -92,8 +92,10 @@ Fail err -> return (Fail err) {-# INLINE (>>=) #-} +#if !(MIN_VERSION_base(4,13,0)) fail = Fail.fail {-# INLINE fail #-} +#endif instance Monad m => Fail.MonadFail (ZeptoT m) where fail msg = Parser $ \_ -> return (Fail msg) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attoparsec-0.13.2.2/attoparsec.cabal new/attoparsec-0.13.2.3/attoparsec.cabal --- old/attoparsec-0.13.2.2/attoparsec.cabal 2018-01-12 23:56:55.000000000 +0100 +++ new/attoparsec-0.13.2.3/attoparsec.cabal 2019-08-31 11:36:08.000000000 +0200 @@ -1,12 +1,12 @@ name: attoparsec -version: 0.13.2.2 +version: 0.13.2.3 license: BSD3 license-file: LICENSE category: Text, Parsing author: Bryan O'Sullivan <[email protected]> maintainer: Bryan O'Sullivan <[email protected]>, Ben Gamari <[email protected]> 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 +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 synopsis: Fast combinator parsing for bytestrings and text cabal-version: >= 1.8 homepage: https://github.com/bos/attoparsec @@ -39,7 +39,7 @@ library build-depends: array, - base >= 4.2 && < 5, + base >= 4.3 && < 5, bytestring, containers, deepseq, @@ -124,10 +124,10 @@ build-depends: array, - base >= 4 && < 5, + base, bytestring, deepseq >= 1.1, - QuickCheck >= 2.7 && < 2.10, + QuickCheck >= 2.13.2 && < 2.14, quickcheck-unicode, scientific, tasty >= 0.11, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attoparsec-0.13.2.2/benchmarks/HeadersByteString/Atto.hs new/attoparsec-0.13.2.3/benchmarks/HeadersByteString/Atto.hs --- old/attoparsec-0.13.2.2/benchmarks/HeadersByteString/Atto.hs 2018-01-12 23:56:55.000000000 +0100 +++ new/attoparsec-0.13.2.3/benchmarks/HeadersByteString/Atto.hs 2019-08-31 11:36:08.000000000 +0200 @@ -15,8 +15,16 @@ instance NFData HttpVersion where rnf !_ = () +isHeaderChar :: Char -> Bool +isHeaderChar c = + (c >= 'a' && c <= 'z') || + (c >= 'A' && c <= 'Z') || + (c >= '0' && c <= '9') || + (c == '_') || + (c == '-') + header = do - name <- B.takeWhile1 (B.inClass "a-zA-Z0-9_-") <* B.char ':' <* B.skipSpace + name <- B.takeWhile1 isHeaderChar <* B.char ':' <* B.skipSpace body <- bodyLine return (name, body) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attoparsec-0.13.2.2/benchmarks/HeadersByteString.hs new/attoparsec-0.13.2.3/benchmarks/HeadersByteString.hs --- old/attoparsec-0.13.2.2/benchmarks/HeadersByteString.hs 2018-01-12 23:56:55.000000000 +0100 +++ new/attoparsec-0.13.2.3/benchmarks/HeadersByteString.hs 2019-08-31 11:36:08.000000000 +0200 @@ -9,6 +9,15 @@ import qualified Data.Attoparsec.ByteString.Lazy as BL import qualified Data.ByteString.Char8 as B +-- Note: In the benchmarks for parsing an http request +-- from a strict bytestring, we consider warp's implementation, +-- which has highly optimized code for handling the first +-- line in particular. It's treatment of the headers +-- is more relaxed from the treatment they are given by the +-- attoparsec parser benchmarked here. Consequently, it +-- is should not be possible to match its performance since +-- it accepts header names with disallowed characters. + headers :: IO Benchmark headers = do req <- B.readFile =<< pathTo "http-request.txt" @@ -18,7 +27,7 @@ return $ bgroup "headers" [ bgroup "B" [ bench "request" $ nf (B.parseOnly request) req - , bench "warp" $ nfIO (parseHeaderLines [req]) + , bench "warp" $ nfIO (parseHeaderLines (B.split '\n' req)) , bench "response" $ nf (B.parseOnly response) resp ] , bgroup "BL" [ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attoparsec-0.13.2.2/benchmarks/http-request.txt new/attoparsec-0.13.2.3/benchmarks/http-request.txt --- old/attoparsec-0.13.2.2/benchmarks/http-request.txt 2018-01-12 23:56:55.000000000 +0100 +++ new/attoparsec-0.13.2.3/benchmarks/http-request.txt 2019-08-31 11:36:08.000000000 +0200 @@ -1,14 +1,9 @@ GET / HTTP/1.1 Host: twitter.com -Accept: text/html, application/xhtml+xml, application/xml; q=0.9, - image/webp, */*; q=0.8 +Accept: text/html, application/xhtml+xml, application/xml; q=0.9, image/webp, */*; q=0.8 Accept-Encoding: gzip,deflate,sdch Accept-Language: en-GB,en-US;q=0.8,en;q=0.6 Cache-Control: max-age=0 -Cookie: guest_id=v1%3A139; _twitter_sess=BAh7CSIKZmxhc2hJQz-e1e1; - __utma=43838368.452555194.1399611824.1; __utmb=43838368; - __utmc=43838368; __utmz=1399611824.1.1.utmcsr=(direct)|utmcmd=(none) -User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) - AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.86 - Safari/537.36 +Cookie: guest_id=v1%3A139; _twitter_sess=BAh7CSIKZmxhc2hJQz-e1e1; __utma=43838368.452555194.1399611824.1; __utmb=43838368; __utmc=43838368; __utmz=1399611824.1.1.utmcsr=(direct)|utmcmd=(none) +User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.86 Safari/537.36 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attoparsec-0.13.2.2/benchmarks/http-response.txt new/attoparsec-0.13.2.3/benchmarks/http-response.txt --- old/attoparsec-0.13.2.2/benchmarks/http-response.txt 2018-01-12 23:56:55.000000000 +0100 +++ new/attoparsec-0.13.2.3/benchmarks/http-response.txt 2019-08-31 11:36:08.000000000 +0200 @@ -3,10 +3,8 @@ Expires: -1 Cache-Control: private, max-age=0 Content-Type: text/html; charset=ISO-8859-1 -Set-Cookie: PREF=ID=1a871afc4240db5e:FF:LM=1399609497:S=e5MZ0itEekjVwNcU; - expires=Sun, 08-May-2016 04:24:57 GMT; path=/; domain=.google.com -Set-Cookie: NID=67=-WlfaDG6VSEPk7abAjrK98HBSoCD2ID6JKkUR95tEumzDmg7Fc8pSQ8; - expires=Sat, 08-Nov-2014 04:24:57 GMT; path=/; domain=.google.com; HttpOnly +Set-Cookie: PREF=ID=1a871afc4240db5e:FF:LM=1399609497:S=e5MZ0itEekjVwNcU; expires=Sun, 08-May-2016 04:24:57 GMT; path=/; domain=.google.com +Set-Cookie: NID=67=-WlfaDG6VSEPk7abAjrK98HBSoCD2ID6JKkUR95tEumzDmg7Fc8pSQ8; expires=Sat, 08-Nov-2014 04:24:57 GMT; path=/; domain=.google.com; HttpOnly P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info." Server: gws X-XSS-Protection: 1; mode=block diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attoparsec-0.13.2.2/tests/QC/ByteString.hs new/attoparsec-0.13.2.3/tests/QC/ByteString.hs --- old/attoparsec-0.13.2.2/tests/QC/ByteString.hs 2018-01-12 23:56:55.000000000 +0100 +++ new/attoparsec-0.13.2.3/tests/QC/ByteString.hs 2019-08-31 11:36:08.000000000 +0200 @@ -26,9 +26,11 @@ satisfy :: Word8 -> L.ByteString -> Property satisfy w s = parseBS (P.satisfy (<=w)) (L.cons w s) === Just w -satisfyWith :: Char -> L.ByteString -> Property -satisfyWith c s = parseBS (P.satisfyWith (chr . fromIntegral) (<=c)) +satisfyWith :: Word8 -> L.ByteString -> Property +satisfyWith w s = parseBS (P.satisfyWith (chr . fromIntegral) (<=c)) (L.cons (fromIntegral (ord c)) s) === Just c + where + c = chr (fromIntegral w) word8 :: Word8 -> L.ByteString -> Property word8 w s = parseBS (P.word8 w) (L.cons w s) === Just w diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attoparsec-0.13.2.2/tests/QC/Text.hs new/attoparsec-0.13.2.3/tests/QC/Text.hs --- old/attoparsec-0.13.2.2/tests/QC/Text.hs 2018-01-12 23:56:55.000000000 +0100 +++ new/attoparsec-0.13.2.3/tests/QC/Text.hs 2019-08-31 11:36:08.000000000 +0200 @@ -6,6 +6,7 @@ import Control.Applicative ((<*>), (<$>)) #endif import Data.Int (Int64) +import Data.Word (Word8) import Prelude hiding (take, takeWhile) import QC.Common (liftOp, parseT) import qualified QC.Text.FastSet as FastSet @@ -16,8 +17,10 @@ import qualified Data.Attoparsec.Text as P import qualified Data.Attoparsec.Text.Lazy as PL import qualified Data.Attoparsec.Text.FastSet as S +import qualified Data.ByteString as BS import qualified Data.Char as Char import qualified Data.Text as T +import qualified Data.Text.Encoding as TE import qualified Data.Text.Lazy as L -- Basic byte-level combinators. @@ -70,9 +73,12 @@ === Just t' where t' = toStrict t -stringCI :: T.Text -> Property -stringCI s = P.parseOnly (P.stringCI fs) s === Right s +-- | Note: "simple, and efficient" works for well formed input... +-- i.e. e.g. Latin1 texts +stringCI :: [Word8] -> Property +stringCI ws = P.parseOnly (P.stringCI fs) s === Right s where fs = T.toCaseFold s + s = TE.decodeLatin1 (BS.pack ws) asciiCI :: T.Text -> Gen Bool asciiCI x = @@ -150,7 +156,9 @@ (c, fst <$> L.uncons s') === ('\r', Just '\n') scan :: L.Text -> Positive Int64 -> Property -scan s (Positive k) = parseT p s === Just (toStrict $ L.take k s) +-- for some reason, if counterexample is removed, this test fails? +scan s (Positive k) = counterexample (show s) + $ parseT p s === Just (toStrict $ L.take k s) where p = P.scan k $ \ n _ -> if n > 0 then let !n' = n - 1 in Just n' else Nothing ++++++ attoparsec.cabal ++++++ --- /var/tmp/diff_new_pack.rkpWFS/_old 2019-10-18 14:33:48.700180291 +0200 +++ /var/tmp/diff_new_pack.rkpWFS/_new 2019-10-18 14:33:48.704180282 +0200 @@ -1,13 +1,13 @@ name: attoparsec -version: 0.13.2.2 -x-revision: 3 +version: 0.13.2.3 +x-revision: 1 license: BSD3 license-file: LICENSE category: Text, Parsing author: Bryan O'Sullivan <[email protected]> maintainer: Bryan O'Sullivan <[email protected]>, Ben Gamari <[email protected]> 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 +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 synopsis: Fast combinator parsing for bytestrings and text cabal-version: >= 1.8 homepage: https://github.com/bos/attoparsec @@ -40,12 +40,12 @@ library build-depends: array, - base >= 4.2 && < 5, + base >= 4.3 && < 5, bytestring, containers, deepseq, scientific >= 0.3.1 && < 0.4, - transformers >= 0.2 && (< 0.4 || >= 0.4.1.0) && < 0.6, + transformers, text >= 1.1.1.3 if impl(ghc < 7.4) build-depends: @@ -125,22 +125,22 @@ build-depends: array, - base >= 4 && < 5, + base, bytestring, deepseq >= 1.1, - QuickCheck >= 2.7 && < 2.10, + QuickCheck >= 2.13.2 && < 2.14, quickcheck-unicode, scientific, tasty >= 0.11, tasty-quickcheck >= 0.8, text, - transformers >= 0.2 && (< 0.4 || >= 0.4.1.0) && < 0.6, + transformers, vector if !impl(ghc >= 8.0) -- Data.Semigroup && Control.Monad.Fail are available in base-4.9+ build-depends: fail == 4.9.*, - semigroups >=0.16.1 && <0.20 + semigroups >=0.16.1 && <0.19 benchmark benchmarks type: exitcode-stdio-1.0 @@ -179,7 +179,7 @@ parsec >= 3.1.2, scientific, text >= 1.1.1.0, - transformers >= 0.2 && (< 0.4 || >= 0.4.1.0) && < 0.6, + transformers, unordered-containers, vector
