Hello community,

here is the log from the commit of package ghc-base64-bytestring for 
openSUSE:Factory checked in at 2020-11-19 11:58:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-base64-bytestring (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-base64-bytestring.new.5913 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-base64-bytestring"

Thu Nov 19 11:58:28 2020 rev:13 rq:849154 version:1.2.0.1

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/ghc-base64-bytestring/ghc-base64-bytestring.changes  
    2020-08-28 21:26:07.260460667 +0200
+++ 
/work/SRC/openSUSE:Factory/.ghc-base64-bytestring.new.5913/ghc-base64-bytestring.changes
    2020-11-23 10:27:10.617138677 +0100
@@ -1,0 +2,8 @@
+Sun Nov 15 22:12:13 UTC 2020 - [email protected]
+
+- Update base64-bytestring to version 1.2.0.1.
+  # 1.2.0.1
+
+  * Package update: support for `bytestring >=0.11`
+
+-------------------------------------------------------------------

Old:
----
  base64-bytestring-1.2.0.0.tar.gz

New:
----
  base64-bytestring-1.2.0.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-base64-bytestring.spec ++++++
--- /var/tmp/diff_new_pack.ruiVvk/_old  2020-11-23 10:27:11.173139305 +0100
+++ /var/tmp/diff_new_pack.ruiVvk/_new  2020-11-23 10:27:11.177139310 +0100
@@ -19,7 +19,7 @@
 %global pkg_name base64-bytestring
 %bcond_with tests
 Name:           ghc-%{pkg_name}
-Version:        1.2.0.0
+Version:        1.2.0.1
 Release:        0
 Summary:        Fast base64 encoding and decoding for ByteStrings
 License:        BSD-3-Clause
@@ -31,8 +31,6 @@
 %if %{with tests}
 BuildRequires:  ghc-HUnit-devel
 BuildRequires:  ghc-QuickCheck-devel
-BuildRequires:  ghc-containers-devel
-BuildRequires:  ghc-split-devel
 BuildRequires:  ghc-test-framework-devel
 BuildRequires:  ghc-test-framework-hunit-devel
 BuildRequires:  ghc-test-framework-quickcheck2-devel

++++++ base64-bytestring-1.2.0.0.tar.gz -> base64-bytestring-1.2.0.1.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/base64-bytestring-1.2.0.0/CHANGELOG.md 
new/base64-bytestring-1.2.0.1/CHANGELOG.md
--- old/base64-bytestring-1.2.0.0/CHANGELOG.md  2001-09-09 03:46:40.000000000 
+0200
+++ new/base64-bytestring-1.2.0.1/CHANGELOG.md  2001-09-09 03:46:40.000000000 
+0200
@@ -1,5 +1,9 @@
 See also http://pvp.haskell.org/faq
 
+# 1.2.0.1
+
+* Package update: support for `bytestring >=0.11`
+ 
 # 1.2.0.0
 
 * Security fix: reject non-canonical base64 encoded values - 
([#38](https://github.com/haskell/base64-bytestring/pull/38)) fixing issue 
[#24](https://github.com/haskell/base64-bytestring/issues/24).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/base64-bytestring-1.2.0.0/Data/ByteString/Base64/Internal.hs 
new/base64-bytestring-1.2.0.1/Data/ByteString/Base64/Internal.hs
--- old/base64-bytestring-1.2.0.0/Data/ByteString/Base64/Internal.hs    
2001-09-09 03:46:40.000000000 +0200
+++ new/base64-bytestring-1.2.0.1/Data/ByteString/Base64/Internal.hs    
2001-09-09 03:46:40.000000000 +0200
@@ -1,4 +1,5 @@
 {-# LANGUAGE BangPatterns #-}
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE DoAndIfThenElse #-}
 -- |
 -- Module      : Data.ByteString.Base64.Internal
@@ -20,6 +21,8 @@
   , peek8, poke8, peek8_32
   , reChunkIn
   , Padding(..)
+  , withBS
+  , mkBS
   ) where
 
 import Data.Bits ((.|.), (.&.), shiftL, shiftR)
@@ -46,65 +49,65 @@
 -- | Encode a string into base64 form.  The result will always be a multiple
 -- of 4 bytes in length.
 encodeWith :: Padding -> EncodeTable -> ByteString -> ByteString
-encodeWith !padding (ET alfaFP encodeTable) (PS sfp soff slen)
-    | slen > maxBound `div` 4 =
+encodeWith !padding !(ET alfaFP encodeTable) !bs = withBS bs go
+  where
+    go !sptr !slen
+      | slen > maxBound `div` 4 =
         error "Data.ByteString.Base64.encode: input too long"
-    | otherwise = unsafePerformIO $ do
-  let dlen = ((slen + 2) `div` 3) * 4
-  dfp <- mallocByteString dlen
-  withForeignPtr alfaFP $ \aptr ->
-    withForeignPtr encodeTable $ \ep ->
-      withForeignPtr sfp $ \sptr -> do
-        let aidx n = peek8 (aptr `plusPtr` n)
-            sEnd = sptr `plusPtr` (slen + soff)
-            finish !n = return (PS dfp 0 n)
-            fill !dp !sp !n
-              | sp `plusPtr` 2 >= sEnd = complete (castPtr dp) sp n
-              | otherwise = {-# SCC "encode/fill" #-} do
-              i <- peek8_32 sp
-              j <- peek8_32 (sp `plusPtr` 1)
-              k <- peek8_32 (sp `plusPtr` 2)
-              let w = (i `shiftL` 16) .|. (j `shiftL` 8) .|. k
-                  enc = peekElemOff ep . fromIntegral
-              poke dp =<< enc (w `shiftR` 12)
-              poke (dp `plusPtr` 2) =<< enc (w .&. 0xfff)
-              fill (dp `plusPtr` 4) (sp `plusPtr` 3) (n + 4)
-            complete dp sp n
-                | sp == sEnd = finish n
-                | otherwise  = {-# SCC "encode/complete" #-} do
-              let peekSP m f = (f . fromIntegral) `fmap` peek8 (sp `plusPtr` m)
-                  twoMore    = sp `plusPtr` 2 == sEnd
-                  equals     = 0x3d :: Word8
-                  doPad = padding == Padded
-                  {-# INLINE equals #-}
-              !a <- peekSP 0 ((`shiftR` 2) . (.&. 0xfc))
-              !b <- peekSP 0 ((`shiftL` 4) . (.&. 0x03))
-
-              poke8 dp =<< aidx a
-
-              if twoMore
-                then do
-                  !b' <- peekSP 1 ((.|. b) . (`shiftR` 4) . (.&. 0xf0))
-                  !c <- aidx =<< peekSP 1 ((`shiftL` 2) . (.&. 0x0f))
-                  poke8 (dp `plusPtr` 1) =<< aidx b'
-                  poke8 (dp `plusPtr` 2) c
-
-                  if doPad
-                    then poke8 (dp `plusPtr` 3) equals >> finish (n + 4)
-                    else finish (n + 3)
-                else do
-                  poke8 (dp `plusPtr` 1) =<< aidx b
+      | otherwise = do
+        let dlen = ((slen + 2) `div` 3) * 4
+        dfp <- mallocByteString dlen
+        withForeignPtr alfaFP $ \aptr ->
+          withForeignPtr encodeTable $ \ep -> do
+            let aidx n = peek8 (aptr `plusPtr` n)
+                sEnd = sptr `plusPtr` slen
+                finish !n = return $ mkBS dfp n
+                fill !dp !sp !n
+                  | sp `plusPtr` 2 >= sEnd = complete (castPtr dp) sp n
+                  | otherwise = {-# SCC "encode/fill" #-} do
+                  i <- peek8_32 sp
+                  j <- peek8_32 (sp `plusPtr` 1)
+                  k <- peek8_32 (sp `plusPtr` 2)
+                  let w = (i `shiftL` 16) .|. (j `shiftL` 8) .|. k
+                      enc = peekElemOff ep . fromIntegral
+                  poke dp =<< enc (w `shiftR` 12)
+                  poke (dp `plusPtr` 2) =<< enc (w .&. 0xfff)
+                  fill (dp `plusPtr` 4) (sp `plusPtr` 3) (n + 4)
+                complete dp sp n
+                    | sp == sEnd = finish n
+                    | otherwise  = {-# SCC "encode/complete" #-} do
+                  let peekSP m f = (f . fromIntegral) `fmap` peek8 (sp 
`plusPtr` m)
+                      twoMore    = sp `plusPtr` 2 == sEnd
+                      equals     = 0x3d :: Word8
+                      doPad = padding == Padded
+                      {-# INLINE equals #-}
+                  !a <- peekSP 0 ((`shiftR` 2) . (.&. 0xfc))
+                  !b <- peekSP 0 ((`shiftL` 4) . (.&. 0x03))
+
+                  poke8 dp =<< aidx a
 
-                  if doPad
+                  if twoMore
                     then do
-                      poke8 (dp `plusPtr` 2) equals
-                      poke8 (dp `plusPtr` 3) equals
-                      finish (n + 4)
-                    else finish (n + 2)
+                      !b' <- peekSP 1 ((.|. b) . (`shiftR` 4) . (.&. 0xf0))
+                      !c <- aidx =<< peekSP 1 ((`shiftL` 2) . (.&. 0x0f))
+                      poke8 (dp `plusPtr` 1) =<< aidx b'
+                      poke8 (dp `plusPtr` 2) c
+
+                      if doPad
+                        then poke8 (dp `plusPtr` 3) equals >> finish (n + 4)
+                        else finish (n + 3)
+                    else do
+                      poke8 (dp `plusPtr` 1) =<< aidx b
+
+                      if doPad
+                        then do
+                          poke8 (dp `plusPtr` 2) equals
+                          poke8 (dp `plusPtr` 3) equals
+                          finish (n + 4)
+                        else finish (n + 2)
 
 
-        withForeignPtr dfp $ \dptr ->
-          fill (castPtr dptr) (sptr `plusPtr` soff) 0
+            withForeignPtr dfp $! \dptr -> fill (castPtr dptr) sptr 0
 
 data EncodeTable = ET !(ForeignPtr Word8) !(ForeignPtr Word16)
 
@@ -114,8 +117,13 @@
 -- stored in big-endian order, as the indices into the table are built in
 -- big-endian order.
 mkEncodeTable :: ByteString -> EncodeTable
+#if MIN_VERSION_bytestring(0,11,0)
+mkEncodeTable alphabet@(BS afp _) =
+    case table of BS fp _ -> ET afp (castForeignPtr fp)
+#else
 mkEncodeTable alphabet@(PS afp _ _) =
     case table of PS fp _ _ -> ET afp (castForeignPtr fp)
+#endif
   where
     ix    = fromIntegral . B.index alphabet
     table = B.pack $ concat $ [ [ix j, ix k] | j <- [0..63], k <- [0..63] ]
@@ -129,23 +137,23 @@
 -- For validation of padding properties, see note: $Validation
 --
 decodeWithTable :: Padding -> ForeignPtr Word8 -> ByteString -> Either String 
ByteString
-decodeWithTable _ _ (PS _ _ 0) = Right B.empty
-decodeWithTable padding decodeFP bs =
-   case padding of
-     Padded
-       | r == 0 -> unsafePerformIO $ go bs
-       | r == 1 -> Left "Base64-encoded bytestring has invalid size"
-       | otherwise -> Left "Base64-encoded bytestring is unpadded or has 
invalid padding"
-     Don'tCare
-       | r == 0 -> unsafePerformIO $ go bs
-       | r == 2 -> unsafePerformIO $ go (B.append bs (B.replicate 2 0x3d))
-       | r == 3 -> validateLastPad bs invalidPad $ go (B.append bs 
(B.replicate 1 0x3d))
-       | otherwise -> Left "Base64-encoded bytestring has invalid size"
-     Unpadded
-       | r == 0 -> validateLastPad bs noPad $ go bs
-       | r == 2 -> validateLastPad bs noPad $ go (B.append bs (B.replicate 2 
0x3d))
-       | r == 3 -> validateLastPad bs noPad $ go (B.append bs (B.replicate 1 
0x3d))
-       | otherwise -> Left "Base64-encoded bytestring has invalid size"
+decodeWithTable padding !decodeFP bs
+  | B.length bs == 0 = Right B.empty
+  | otherwise = case padding of
+    Padded
+      | r == 0 -> withBS bs go
+      | r == 1 -> Left "Base64-encoded bytestring has invalid size"
+      | otherwise -> Left "Base64-encoded bytestring is unpadded or has 
invalid padding"
+    Don'tCare
+      | r == 0 -> withBS bs go
+      | r == 2 -> withBS (B.append bs (B.replicate 2 0x3d)) go
+      | r == 3 -> validateLastPad bs invalidPad $ withBS (B.append bs 
(B.replicate 1 0x3d)) go
+      | otherwise -> Left "Base64-encoded bytestring has invalid size"
+    Unpadded
+      | r == 0 -> validateLastPad bs noPad $ withBS bs go
+      | r == 2 -> validateLastPad bs noPad $ withBS (B.append bs (B.replicate 
2 0x3d)) go
+      | r == 3 -> validateLastPad bs noPad $ withBS (B.append bs (B.replicate 
1 0x3d)) go
+      | otherwise -> Left "Base64-encoded bytestring has invalid size"
   where
     (!q, !r) = (B.length bs) `divMod` 4
 
@@ -154,13 +162,11 @@
 
     !dlen = q * 3
 
-    go (PS !sfp !soff !slen) = do
+    go !sptr !slen = do
       dfp <- mallocByteString dlen
-      withForeignPtr decodeFP $ \ !decptr ->
-        withForeignPtr sfp $ \sptr ->
-        withForeignPtr dfp $ \dptr ->
-          decodeLoop decptr (plusPtr sptr soff) dptr
-            (sptr `plusPtr` (slen + soff)) dfp
+      withForeignPtr decodeFP $! \ !decptr ->
+        withForeignPtr dfp $! \dptr ->
+          decodeLoop decptr sptr dptr (sptr `plusPtr` slen) dfp
 
 decodeLoop
     :: Ptr Word8
@@ -256,19 +262,19 @@
         if c == 0x63 && d == 0x63
         then
           if sanityCheckPos b mask_4bits
-          then return $ Right $ PS dfp 0 (1 + (dst `minusPtr` dptr))
+          then return $ Right $ mkBS dfp (1 + (dst `minusPtr` dptr))
           else canonErr (plusPtr src 1)
         else if d == 0x63
           then
             if sanityCheckPos c mask_2bits
             then do
               poke8 (plusPtr dst 1) (fromIntegral (shiftR w 8))
-              return $ Right $ PS dfp 0 (2 + (dst `minusPtr` dptr))
+              return $ Right $ mkBS dfp (2 + (dst `minusPtr` dptr))
             else canonErr (plusPtr src 2)
           else do
             poke8 (plusPtr dst 1) (fromIntegral (shiftR w 8))
             poke8 (plusPtr dst 2) (fromIntegral w)
-            return $ Right $ PS dfp 0 (3 + (dst `minusPtr` dptr))
+            return $ Right $ mkBS dfp (3 + (dst `minusPtr` dptr))
 
 
 -- | Decode a base64-encoded string.  This function is lenient in
@@ -278,54 +284,55 @@
 -- takes the decoding table (for @base64@ or @base64url@) as the first
 -- paramert.
 decodeLenientWithTable :: ForeignPtr Word8 -> ByteString -> ByteString
-decodeLenientWithTable decodeFP (PS sfp soff slen)
-    | dlen <= 0 = B.empty
-    | otherwise = unsafePerformIO $ do
-  dfp <- mallocByteString dlen
-  withForeignPtr decodeFP $ \ !decptr ->
-    withForeignPtr sfp $ \ !sptr -> do
-      let finish dbytes
-              | dbytes > 0 = return (PS dfp 0 dbytes)
-              | otherwise  = return B.empty
-          sEnd = sptr `plusPtr` (slen + soff)
-          fill !dp !sp !n
-            | sp >= sEnd = finish n
-            | otherwise = {-# SCC "decodeLenientWithTable/fill" #-}
-            let look :: Bool -> Ptr Word8
-                     -> (Ptr Word8 -> Word32 -> IO ByteString)
-                     -> IO ByteString
-                {-# INLINE look #-}
-                look skipPad p0 f = go p0
-                  where
-                    go p | p >= sEnd = f (sEnd `plusPtr` (-1)) done
-                         | otherwise = {-# SCC "decodeLenient/look" #-} do
-                      ix <- fromIntegral `fmap` peek8 p
-                      v <- peek8 (decptr `plusPtr` ix)
-                      if v == x || (v == done && skipPad)
-                        then go (p `plusPtr` 1)
-                        else f (p `plusPtr` 1) (fromIntegral v)
-            in look True sp $ \ !aNext !aValue ->
-               look True aNext $ \ !bNext !bValue ->
-                 if aValue == done || bValue == done
-                 then finish n
-                 else
-                    look False bNext $ \ !cNext !cValue ->
-                    look False cNext $ \ !dNext !dValue -> do
-                      let w = (aValue `shiftL` 18) .|. (bValue `shiftL` 12) .|.
-                              (cValue `shiftL` 6) .|. dValue
-                      poke8 dp $ fromIntegral (w `shiftR` 16)
-                      if cValue == done
-                        then finish (n + 1)
-                        else do
-                          poke8 (dp `plusPtr` 1) $ fromIntegral (w `shiftR` 8)
-                          if dValue == done
-                            then finish (n + 2)
+decodeLenientWithTable !decodeFP !bs = withBS bs go
+  where
+    go !sptr !slen
+      | dlen <= 0 = return B.empty
+      | otherwise = do
+        dfp <- mallocByteString dlen
+        withForeignPtr decodeFP $ \ !decptr -> do
+          let finish dbytes
+                  | dbytes > 0 = return $ mkBS dfp dbytes
+                  | otherwise = return B.empty
+              sEnd = sptr `plusPtr` slen
+              fill !dp !sp !n
+                | sp >= sEnd = finish n
+                | otherwise = {-# SCC "decodeLenientWithTable/fill" #-}
+                let look :: Bool -> Ptr Word8
+                         -> (Ptr Word8 -> Word32 -> IO ByteString)
+                         -> IO ByteString
+                    {-# INLINE look #-}
+                    look skipPad p0 f = go' p0
+                      where
+                        go' p | p >= sEnd = f (sEnd `plusPtr` (-1)) done
+                             | otherwise = {-# SCC "decodeLenient/look" #-} do
+                          ix <- fromIntegral `fmap` peek8 p
+                          v <- peek8 (decptr `plusPtr` ix)
+                          if v == x || (v == done && skipPad)
+                            then go' (p `plusPtr` 1)
+                            else f (p `plusPtr` 1) (fromIntegral v)
+                in look True sp $ \ !aNext !aValue ->
+                   look True aNext $ \ !bNext !bValue ->
+                     if aValue == done || bValue == done
+                     then finish n
+                     else
+                        look False bNext $ \ !cNext !cValue ->
+                        look False cNext $ \ !dNext !dValue -> do
+                          let w = (aValue `shiftL` 18) .|. (bValue `shiftL` 
12) .|.
+                                  (cValue `shiftL` 6) .|. dValue
+                          poke8 dp $ fromIntegral (w `shiftR` 16)
+                          if cValue == done
+                            then finish (n + 1)
                             else do
-                              poke8 (dp `plusPtr` 2) $ fromIntegral w
-                              fill (dp `plusPtr` 3) dNext (n+3)
-      withForeignPtr dfp $ \dptr ->
-        fill dptr (sptr `plusPtr` soff) 0
-  where dlen = ((slen + 3) `div` 4) * 3
+                              poke8 (dp `plusPtr` 1) $ fromIntegral (w 
`shiftR` 8)
+                              if dValue == done
+                                then finish (n + 2)
+                                else do
+                                  poke8 (dp `plusPtr` 2) $ fromIntegral w
+                                  fill (dp `plusPtr` 3) dNext (n+3)
+          withForeignPtr dfp $ \dptr -> fill dptr sptr 0
+      where
+        !dlen = ((slen + 3) `div` 4) * 3
 
 x :: Integral a => a
 x = 255
@@ -387,11 +394,11 @@
       -- ^ input to validate
     -> String
       -- ^ error msg
-    -> IO (Either String ByteString)
     -> Either String ByteString
-validateLastPad bs err io
+    -> Either String ByteString
+validateLastPad !bs err !io
     | B.last bs == 0x3d = Left err
-    | otherwise = unsafePerformIO io
+    | otherwise = io
 {-# INLINE validateLastPad #-}
 
 -- | Sanity check an index against a bitmask to make sure
@@ -412,3 +419,30 @@
 mask_4bits :: Word8
 mask_4bits = 15 -- (1 << 4) - 1
 {-# NOINLINE mask_4bits #-}
+
+-- | Back-compat shim for bytestring >=0.11. Constructs a
+-- bytestring from a foreign ptr and a length. Offset is 0.
+--
+mkBS :: ForeignPtr Word8 -> Int -> ByteString
+#if MIN_VERSION_bytestring(0,11,0)
+mkBS dfp n = BS dfp n
+#else
+mkBS dfp n = PS dfp 0 n
+#endif
+{-# INLINE mkBS #-}
+
+-- | Back-compat shim for bytestring >=0.11. Unwraps the foreign ptr of
+-- a bytestring, executing an IO action as a function of the underlying
+-- pointer and some starting length.
+--
+-- Note: in `unsafePerformIO`.
+--
+withBS :: ByteString -> (Ptr Word8 -> Int -> IO a) -> a
+#if MIN_VERSION_bytestring(0,11,0)
+withBS (BS !sfp !slen) f = unsafePerformIO $
+  withForeignPtr sfp $ \p -> f p slen
+#else
+withBS (PS !sfp !soff !slen) f = unsafePerformIO $
+  withForeignPtr sfp $ \p -> f (plusPtr p soff) slen
+#endif
+{-# INLINE withBS #-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/base64-bytestring-1.2.0.0/Data/ByteString/Base64/Lazy.hs 
new/base64-bytestring-1.2.0.1/Data/ByteString/Base64/Lazy.hs
--- old/base64-bytestring-1.2.0.0/Data/ByteString/Base64/Lazy.hs        
2001-09-09 03:46:40.000000000 +0200
+++ new/base64-bytestring-1.2.0.1/Data/ByteString/Base64/Lazy.hs        
2001-09-09 03:46:40.000000000 +0200
@@ -8,7 +8,9 @@
 -- Copyright   : (c) 2012 Ian Lynagh
 --
 -- License     : BSD-style
--- Maintainer  : [email protected]
+-- Maintainer  : Emily Pillmore <[email protected]>,
+--               Herbert Valerio Riedel <[email protected]>,
+--               Mikhail Glushenkov <[email protected]>
 -- Stability   : experimental
 -- Portability : GHC
 --
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/base64-bytestring-1.2.0.0/Data/ByteString/Base64/URL/Lazy.hs 
new/base64-bytestring-1.2.0.1/Data/ByteString/Base64/URL/Lazy.hs
--- old/base64-bytestring-1.2.0.0/Data/ByteString/Base64/URL/Lazy.hs    
2001-09-09 03:46:40.000000000 +0200
+++ new/base64-bytestring-1.2.0.1/Data/ByteString/Base64/URL/Lazy.hs    
2001-09-09 03:46:40.000000000 +0200
@@ -8,7 +8,9 @@
 -- Copyright   : (c) 2012 Ian Lynagh
 --
 -- License     : BSD-style
--- Maintainer  : [email protected]
+-- Maintainer  : Emily Pillmore <[email protected]>,
+--               Herbert Valerio Riedel <[email protected]>,
+--               Mikhail Glushenkov <[email protected]>
 -- Stability   : experimental
 -- Portability : GHC
 --
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/base64-bytestring-1.2.0.0/Data/ByteString/Base64/URL.hs 
new/base64-bytestring-1.2.0.1/Data/ByteString/Base64/URL.hs
--- old/base64-bytestring-1.2.0.0/Data/ByteString/Base64/URL.hs 2001-09-09 
03:46:40.000000000 +0200
+++ new/base64-bytestring-1.2.0.1/Data/ByteString/Base64/URL.hs 2001-09-09 
03:46:40.000000000 +0200
@@ -8,7 +8,9 @@
 -- Copyright   : (c) 2012 Deian Stefan
 --
 -- License     : BSD-style
--- Maintainer  : [email protected]
+-- Maintainer  : Emily Pillmore <[email protected]>,
+--               Herbert Valerio Riedel <[email protected]>,
+--               Mikhail Glushenkov <[email protected]>
 -- Stability   : experimental
 -- Portability : GHC
 --
@@ -76,8 +78,20 @@
 {-# NOINLINE alphabet #-}
 
 decodeFP :: ForeignPtr Word8
-PS decodeFP _ _ = B.pack $ replicate 45 x ++ [62,x,x] ++ [52..61] ++ [x,x,
-  x,done,x,x,x] ++ [0..25] ++ [x,x,x,x,63,x] ++ [26..51] ++ replicate 133 x
+#if MIN_VERSION_bytestring(0,11,0)
+BS decodeFP _ =
+#else
+PS decodeFP _ _ =
+#endif
+  B.pack $ replicate 45 x
+    ++ [62,x,x]
+    ++ [52..61]
+    ++ [x,x,x,done,x,x,x]
+    ++ [0..25]
+    ++ [x,x,x,x,63,x]
+    ++ [26..51]
+    ++ replicate 133 x
+
 {-# NOINLINE decodeFP #-}
 
 x :: Integral a => a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/base64-bytestring-1.2.0.0/Data/ByteString/Base64.hs 
new/base64-bytestring-1.2.0.1/Data/ByteString/Base64.hs
--- old/base64-bytestring-1.2.0.0/Data/ByteString/Base64.hs     2001-09-09 
03:46:40.000000000 +0200
+++ new/base64-bytestring-1.2.0.1/Data/ByteString/Base64.hs     2001-09-09 
03:46:40.000000000 +0200
@@ -8,7 +8,9 @@
 -- Copyright   : (c) 2010 Bryan O'Sullivan
 --
 -- License     : BSD-style
--- Maintainer  : [email protected]
+-- Maintainer  : Emily Pillmore <[email protected]>,
+--               Herbert Valerio Riedel <[email protected]>,
+--               Mikhail Glushenkov <[email protected]>
 -- Stability   : experimental
 -- Portability : GHC
 --
@@ -36,7 +38,7 @@
 -- the specification in
 -- <http://tools.ietf.org/rfc/rfc4648 RFC 4648>.
 --
--- (Note: this means that even @"\n", "\r\n"@ as line breaks are rejected
+-- (Note: this means that even @"\\n"@ and @"\\r\\n"@ as line breaks are 
rejected
 -- rather than ignored.  If you are using this in the context of a
 -- standard that overrules RFC 4648 such as HTTP multipart mime bodies,
 -- consider using 'decodeLenient'.)
@@ -55,9 +57,19 @@
 {-# NOINLINE alphabet #-}
 
 decodeFP :: ForeignPtr Word8
-PS decodeFP _ _ = B.pack $
-  replicate 43 x ++ [62,x,x,x,63] ++ [52..61] ++ [x,x,x,done,x,x,x] ++
-  [0..25] ++ [x,x,x,x,x,x] ++ [26..51] ++ replicate 133 x
+#if MIN_VERSION_bytestring(0,11,0)
+BS decodeFP _ =
+#else
+PS decodeFP _ _ =
+#endif
+  B.pack $ replicate 43 x
+    ++ [62,x,x,x,63]
+    ++ [52..61]
+    ++ [x,x,x,done,x,x,x]
+    ++ [0..25]
+    ++ [x,x,x,x,x,x]
+    ++ [26..51]
+    ++ replicate 133 x
 {-# NOINLINE decodeFP #-}
 
 x :: Integral a => a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/base64-bytestring-1.2.0.0/README.md 
new/base64-bytestring-1.2.0.1/README.md
--- old/base64-bytestring-1.2.0.0/README.md     2001-09-09 03:46:40.000000000 
+0200
+++ new/base64-bytestring-1.2.0.1/README.md     2001-09-09 03:46:40.000000000 
+0200
@@ -1,20 +1,8 @@
-# Fast base64 support [![Hackage 
version](https://img.shields.io/hackage/v/base64-bytestring.svg?label=Hackage)](https://hackage.haskell.org/package/base64-bytestring)
 [![Stackage 
version](https://www.stackage.org/package/base64-bytestring/badge/lts?label=Stackage)](https://www.stackage.org/package/base64-bytestring)
 [![Build 
Status](https://secure.travis-ci.org/haskell/base64-bytestring.svg?branch=master)](http://travis-ci.org/haskell/base64-bytestring)
+# Base64 Support for ByteStrings [![Hackage 
version](https://img.shields.io/hackage/v/base64-bytestring.svg?label=Hackage)](https://hackage.haskell.org/package/base64-bytestring)
 [![Stackage 
version](https://www.stackage.org/package/base64-bytestring/badge/lts?label=Stackage)](https://www.stackage.org/package/base64-bytestring)
 [![Build 
Status](https://secure.travis-ci.org/haskell/base64-bytestring.svg?branch=master)](http://travis-ci.org/haskell/base64-bytestring)
 
 This package provides a Haskell library for working with base64-encoded
 data quickly and efficiently, using the `ByteString` type.
 
-
-# Performance
-
-This library is written in pure Haskell, and it's fast:
-
-* 250 MB/sec encoding
-
-* 200 MB/sec strict decoding (per RFC 4648)
-
-* 100 MB/sec lenient decoding
-
-
 # Get involved!
 
 Please report bugs via the
@@ -28,5 +16,5 @@
 # Authors
 
 This library is written by [Bryan O'Sullivan](mailto:[email protected]). It
-is maintained by [Herbert Valerio Riedel](mailto:[email protected]) and [Mikhail
-Glushenkov](mailto:[email protected]).
+is maintained by [Herbert Valerio Riedel](mailto:[email protected]), [Mikhail
+Glushenkov](mailto:[email protected]), and [Emily 
Pillmore](mailto:[email protected]).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/base64-bytestring-1.2.0.0/base64-bytestring.cabal 
new/base64-bytestring-1.2.0.1/base64-bytestring.cabal
--- old/base64-bytestring-1.2.0.0/base64-bytestring.cabal       2001-09-09 
03:46:40.000000000 +0200
+++ new/base64-bytestring-1.2.0.1/base64-bytestring.cabal       2001-09-09 
03:46:40.000000000 +0200
@@ -1,6 +1,6 @@
 cabal-version:      1.12
 name:               base64-bytestring
-version:            1.2.0.0
+version:            1.2.0.1
 synopsis:           Fast base64 encoding and decoding for ByteStrings
 description:
   This package provides support for encoding and decoding binary data 
according to @base64@ (see also <https://tools.ietf.org/html/rfc4648 RFC 4648>) 
for strict and lazy ByteStrings
@@ -33,6 +33,7 @@
    || ==8.6.5
    || ==8.8.3
    || ==8.10.1
+   || ==8.10.2
 
 extra-source-files:
   README.md
@@ -50,12 +51,12 @@
   other-modules:    Data.ByteString.Base64.Internal
   build-depends:
       base        >=4   && <5
-    , bytestring  >=0.9 && <0.11
+    , bytestring  >=0.9 && <0.12
 
   ghc-options:      -Wall -funbox-strict-fields
   default-language: Haskell2010
 
-test-suite tests
+test-suite test
   type:             exitcode-stdio-1.0
   hs-source-dirs:   tests
   main-is:          Tests.hs
@@ -64,10 +65,8 @@
       base
     , base64-bytestring
     , bytestring
-    , containers
     , HUnit
     , QuickCheck
-    , split
     , test-framework
     , test-framework-hunit
     , test-framework-quickcheck2
@@ -83,9 +82,8 @@
       base
     , base64-bytestring
     , bytestring
-    , containers
     , criterion
-    , deepseq
+    , deepseq >=1.1
 
   default-language: Haskell2010
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/base64-bytestring-1.2.0.0/benchmarks/BM.hs 
new/base64-bytestring-1.2.0.1/benchmarks/BM.hs
--- old/base64-bytestring-1.2.0.0/benchmarks/BM.hs      2001-09-09 
03:46:40.000000000 +0200
+++ new/base64-bytestring-1.2.0.1/benchmarks/BM.hs      2001-09-09 
03:46:40.000000000 +0200
@@ -1,72 +1,95 @@
-{-# LANGUAGE CPP               #-}
+{-# LANGUAGE BangPatterns #-}
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE OverloadedStrings #-}
+module Main
+( main
+) where
 
-import Criterion.Main
-import qualified Data.ByteString.Base64 as B
-import qualified Data.ByteString.Base64.Lazy as L
-import qualified Data.ByteString.Base64.URL as U
-import qualified Data.ByteString.Base64.URL.Lazy as LU
-import qualified Data.ByteString.Char8 as B
-import qualified Data.ByteString.Lazy as L
-
+#if __GLASGOW_HASKELL__ > 702
 #if !MIN_VERSION_bytestring(0,10,0)
 import Control.DeepSeq (NFData(rnf))
-import qualified Data.ByteString.Lazy.Internal as L
 #endif
 
-strict :: String -> B.ByteString -> Benchmark
-strict name orig =
-    bgroup name [
-      bgroup "normal" [
-        bench "decode" $ whnf B.decode enc
-      , bench "decodeLenient" $ whnf B.decodeLenient enc
-      , bench "encode" $ whnf B.encode orig
-      ]
-    , bgroup "url" [
-        bench "decode" $ whnf U.decode enc
-      , bench "decodeLenient" $ whnf U.decodeLenient enc
-      , bench "encode" $ whnf U.encode orig
-      , bench "encodeUnpadded" $ whnf U.encodeUnpadded orig
-      ]
-    ]
-  where enc = U.encode orig
+import Criterion
+import Criterion.Main
 
-#if !MIN_VERSION_bytestring(0,10,0)
-instance NFData L.ByteString where
-    rnf L.Empty        = ()
-    rnf (L.Chunk _ ps) = rnf ps
+import qualified Data.ByteString as BS
+import qualified Data.ByteString.Base64 as B64
 #endif
 
-lazy :: String -> L.ByteString -> Benchmark
-lazy name orig =
-    bgroup name [
-      bgroup "normal" [
-        bench "decode" $ nf L.decode enc
-      , bench "decodeLenient" $ nf L.decodeLenient enc
-      , bench "encode" $ nf L.encode orig
+main :: IO ()
+main =
+#if __GLASGOW_HASKELL__ < 704
+  return ()
+#else
+  defaultMain
+    [ env bs $ \ ~(bs25,bs100,bs1k,bs10k,bs100k,bs1mm) ->
+      bgroup "encode"
+      [ bgroup "25"
+        [ bench "base64" $ whnf B64.encode bs25
+        ]
+      , bgroup "100"
+        [ bench "base64" $ whnf B64.encode bs100
+        ]
+      , bgroup "1k"
+        [ bench "base64" $ whnf B64.encode bs1k
+        ]
+      , bgroup "10k"
+        [ bench "base64" $ whnf B64.encode bs10k
+        ]
+      , bgroup "100k"
+        [ bench "base64" $ whnf B64.encode bs100k
+        ]
+      , bgroup "1mm"
+        [ bench "base64" $ whnf B64.encode bs1mm
+        ]
       ]
-    , bgroup "url" [
-        bench "decode" $ nf LU.decode enc
-      , bench "decodeLenient" $ nf LU.decodeLenient enc
-      , bench "encode" $ nf LU.encode orig
-      , bench "encodeUnpadded" $ whnf LU.encodeUnpadded orig
+    , env bs' $ \ ~(bs25,bs100,bs1k,bs10k,bs100k,bs1mm) ->
+      bgroup "decode"
+      [ bgroup "25"
+        [ bench "base64" $ whnf B64.decode bs25
+        ]
+      , bgroup "100"
+        [ bench "base64" $ whnf B64.decode bs100
+        ]
+      , bgroup "1k"
+        [ bench "base64" $ whnf B64.decode bs1k
+        ]
+      , bgroup "10k"
+        [ bench "base64" $ whnf B64.decode bs10k
+        ]
+      , bgroup "100k"
+        [ bench "base64" $ whnf B64.decode bs100k
+        ]
+      , bgroup "1mm"
+        [ bench "base64" $ whnf B64.decode bs1mm
+        ]
       ]
     ]
-  where enc = L.encode orig
+  where
+    bss :: BS.ByteString
+    bss = "ab%de^ghi*"
+
+    bs = do
+      let !a = BS.concat $ replicate 3 bss
+          !b = BS.concat $ replicate 10 bss
+          !c = BS.concat $ replicate 100 bss
+          !d = BS.concat $ replicate 1000 bss
+          !e = BS.concat $ replicate 10000 bss
+          !f = BS.concat $ replicate 100000 bss
+      return (a,b,c,d,e,f)
+
+    bs' = do
+      let !a = B64.encode (BS.concat $ replicate 3 bss)
+          !b = B64.encode (BS.concat $ replicate 10 bss)
+          !c = B64.encode (BS.concat $ replicate 100 bss)
+          !d = B64.encode (BS.concat $ replicate 1000 bss)
+          !e = B64.encode (BS.concat $ replicate 10000 bss)
+          !f = B64.encode (BS.concat $ replicate 100000 bss)
+      return (a,b,c,d,e,f)
 
-main :: IO ()
-main = defaultMain [
-         bgroup "lazy" [
-           lazy "small" (L.fromChunks [input])
-         , lazy "medium" (L.concat . replicate 16 . L.fromChunks . (:[]) .
-                          B.concat $ replicate 8 input)
-         , lazy "large" (L.concat . replicate 1280 . L.fromChunks . (:[]) .
-                          B.concat $ replicate 8 input)
-         ]
-       , bgroup "strict" [
-           strict "small" input
-         , strict "medium" (B.concat (replicate 128 input))
-         , strict "large" (B.concat (replicate 10240 input))
-         ]
-       ]
-  where input = "abcdABCD0123[];'"
+#if !MIN_VERSION_bytestring(0,10,0)
+instance NFData BS.ByteString where
+    rnf bs = bs `seq` ()
+#endif
+#endif
_______________________________________________
openSUSE Commits mailing list -- [email protected]
To unsubscribe, email [email protected]
List Netiquette: https://en.opensuse.org/openSUSE:Mailing_list_netiquette
List Archives: 
https://lists.opensuse.org/archives/list/[email protected]

Reply via email to