Hello community, here is the log from the commit of package ghc-attoparsec for openSUSE:Factory checked in at 2018-05-30 11:59:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-attoparsec (Old) and /work/SRC/openSUSE:Factory/.ghc-attoparsec.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-attoparsec" Wed May 30 11:59:53 2018 rev:12 rq:607744 version:0.13.2.2 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-attoparsec/ghc-attoparsec.changes 2017-09-15 21:21:00.669791015 +0200 +++ /work/SRC/openSUSE:Factory/.ghc-attoparsec.new/ghc-attoparsec.changes 2018-05-30 12:23:28.333806144 +0200 @@ -1,0 +2,7 @@ +Mon May 14 17:02:11 UTC 2018 - psim...@suse.com + +- Update attoparsec to version 0.13.2.2. + * Improved performance of `Data.Attoparsec.Text.asciiCI` + * `pure` is now strict in `Position` + +------------------------------------------------------------------- Old: ---- attoparsec-0.13.1.0.tar.gz New: ---- attoparsec-0.13.2.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-attoparsec.spec ++++++ --- /var/tmp/diff_new_pack.QZpY7W/_old 2018-05-30 12:23:29.373774492 +0200 +++ /var/tmp/diff_new_pack.QZpY7W/_new 2018-05-30 12:23:29.377774370 +0200 @@ -1,7 +1,7 @@ # # spec file for package ghc-attoparsec # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,7 +19,7 @@ %global pkg_name attoparsec %bcond_with tests Name: ghc-%{pkg_name} -Version: 0.13.1.0 +Version: 0.13.2.2 Release: 0 Summary: Fast combinator parsing for bytestrings and text License: BSD-3-Clause @@ -77,7 +77,7 @@ %ghc_pkg_recache %files -f %{name}.files -%doc LICENSE +%license LICENSE %files devel -f %{name}-devel.files %doc README.markdown changelog.md examples ++++++ attoparsec-0.13.1.0.tar.gz -> attoparsec-0.13.2.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attoparsec-0.13.1.0/Data/Attoparsec/Internal/Types.hs new/attoparsec-0.13.2.2/Data/Attoparsec/Internal/Types.hs --- old/attoparsec-0.13.1.0/Data/Attoparsec/Internal/Types.hs 2016-09-15 18:24:34.000000000 +0200 +++ new/attoparsec-0.13.2.2/Data/Attoparsec/Internal/Types.hs 2018-01-12 23:56:55.000000000 +0100 @@ -180,7 +180,7 @@ {-# INLINE apP #-} instance Applicative (Parser i) where - pure v = Parser $ \t pos more _lose succ -> succ t pos more v + pure v = Parser $ \t !pos more _lose succ -> succ t pos more v {-# INLINE pure #-} (<*>) = apP {-# INLINE (<*>) #-} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attoparsec-0.13.1.0/Data/Attoparsec/Text/Internal.hs new/attoparsec-0.13.2.2/Data/Attoparsec/Text/Internal.hs --- old/attoparsec-0.13.1.0/Data/Attoparsec/Text/Internal.hs 2016-09-15 18:24:34.000000000 +0200 +++ new/attoparsec-0.13.2.2/Data/Attoparsec/Text/Internal.hs 2018-01-12 23:56:55.000000000 +0100 @@ -1,4 +1,4 @@ -{-# LANGUAGE BangPatterns, CPP, FlexibleInstances, GADTs, OverloadedStrings, +{-# LANGUAGE BangPatterns, FlexibleInstances, GADTs, OverloadedStrings, Rank2Types, RecordWildCards, TypeFamilies, TypeSynonymInstances #-} {-# OPTIONS_GHC -fno-warn-orphans #-} -- | @@ -65,17 +65,14 @@ , atEnd ) where -#if !MIN_VERSION_base(4,8,0) -import Control.Applicative ((<$>)) -#endif -import Control.Applicative ((<|>)) +import Control.Applicative ((<|>), (<$>), pure, (*>)) import Control.Monad (when) import Data.Attoparsec.Combinator ((<?>)) import Data.Attoparsec.Internal import Data.Attoparsec.Internal.Types hiding (Parser, Failure, Success) import qualified Data.Attoparsec.Text.Buffer as Buf import Data.Attoparsec.Text.Buffer (Buffer, buffer) -import Data.Char (chr, ord) +import Data.Char (isAsciiUpper, isAsciiLower, toUpper, toLower) import Data.List (intercalate) import Data.String (IsString(..)) import Data.Text.Internal (Text(..)) @@ -225,15 +222,16 @@ -- | Satisfy a literal string, ignoring case for characters in the ASCII range. asciiCI :: Text -> Parser Text -asciiCI s = string_ (stringSuspended asciiToLower) asciiToLower s - where - asciiToLower = T.map f - where - offset = ord 'a' - ord 'A' - f c | 'A' <= c && c <= 'Z' = chr (ord c + offset) - | otherwise = c +asciiCI s = fmap fst $ match $ T.foldr ((*>) . asciiCharCI) (pure ()) s {-# INLINE asciiCI #-} +asciiCharCI :: Char -> Parser Char +asciiCharCI c + | isAsciiUpper c = char c <|> char (toLower c) + | isAsciiLower c = char c <|> char (toUpper c) + | otherwise = char c +{-# INLINE asciiCharCI #-} + -- | Skip past input for as long as the predicate returns 'True'. skipWhile :: (Char -> Bool) -> Parser () skipWhile p = go diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attoparsec-0.13.1.0/attoparsec.cabal new/attoparsec-0.13.2.2/attoparsec.cabal --- old/attoparsec-0.13.1.0/attoparsec.cabal 2016-09-15 18:24:34.000000000 +0200 +++ new/attoparsec-0.13.2.2/attoparsec.cabal 2018-01-12 23:56:55.000000000 +0100 @@ -1,12 +1,12 @@ name: attoparsec -version: 0.13.1.0 +version: 0.13.2.2 license: BSD3 license-file: LICENSE category: Text, Parsing author: Bryan O'Sullivan <b...@serpentine.com> -maintainer: Bryan O'Sullivan <b...@serpentine.com> +maintainer: Bryan O'Sullivan <b...@serpentine.com>, Ben Gamari <b...@smart-cactus.org> stability: experimental -tested-with: GHC == 7.0.1, GHC == 7.2.1, GHC == 7.4.2, GHC ==7.6.3, GHC ==7.8.4, GHC ==7.10.3 +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 synopsis: Fast combinator parsing for bytestrings and text cabal-version: >= 1.8 homepage: https://github.com/bos/attoparsec @@ -98,6 +98,24 @@ QC.Text.FastSet QC.Text.Regressions + other-modules: Data.Attoparsec.ByteString + Data.Attoparsec.ByteString.Buffer + Data.Attoparsec.ByteString.Char8 + Data.Attoparsec.ByteString.FastSet + Data.Attoparsec.ByteString.Internal + Data.Attoparsec.ByteString.Lazy + Data.Attoparsec.Combinator + Data.Attoparsec.Internal + Data.Attoparsec.Internal.Fhthagn + Data.Attoparsec.Internal.Types + Data.Attoparsec.Number + Data.Attoparsec.Text + Data.Attoparsec.Text.Buffer + Data.Attoparsec.Text.FastSet + Data.Attoparsec.Text.Internal + Data.Attoparsec.Text.Lazy + Data.Attoparsec.Zepto + ghc-options: -Wall -threaded -rtsopts @@ -109,7 +127,7 @@ base >= 4 && < 5, bytestring, deepseq >= 1.1, - QuickCheck >= 2.7, + QuickCheck >= 2.7 && < 2.10, quickcheck-unicode, scientific, tasty >= 0.11, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/attoparsec-0.13.1.0/changelog.md new/attoparsec-0.13.2.2/changelog.md --- old/attoparsec-0.13.1.0/changelog.md 2016-09-15 18:24:34.000000000 +0200 +++ new/attoparsec-0.13.2.2/changelog.md 2018-01-12 23:56:55.000000000 +0100 @@ -1,3 +1,11 @@ +0.13.2.1 + +* Improved performance of `Data.Attoparsec.Text.asciiCI` + +0.13.2.0 + +* `pure` is now strict in `Position` + 0.13.1.0 * `runScanner` now correctly returns the final state