packages feed

cborg 0.2.7.0 → 0.2.8.0

raw patch · 6 files changed

+102/−26 lines, 6 filesdep ~aesondep ~basedep ~ghc-primPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: aeson, base, ghc-prim, primitive, vector

API changes (from Hackage documentation)

- Codec.CBOR.ByteArray: instance GHC.Exts.IsList Codec.CBOR.ByteArray.ByteArray
- Codec.CBOR.ByteArray.Sliced: instance GHC.Exts.IsList Codec.CBOR.ByteArray.Sliced.SlicedByteArray
+ Codec.CBOR.ByteArray: instance GHC.IsList.IsList Codec.CBOR.ByteArray.ByteArray
+ Codec.CBOR.ByteArray.Sliced: instance GHC.IsList.IsList Codec.CBOR.ByteArray.Sliced.SlicedByteArray

Files

ChangeLog.md view
@@ -1,5 +1,16 @@ # Revision history for cborg +## 0.2.8.0  -- 2022-09-24++* Support GHC 9.4++* Fix compatibility with primitive 0.7.4.0++* Drop GHC 8.0 and 8.2 support++* Support aeson 2.1++ ## 0.2.3.1  -- 2020-05-10  * Bounds updates for GHC 8.10
cborg.cabal view
@@ -1,5 +1,5 @@ name:                cborg-version:             0.2.7.0+version:             0.2.8.0 synopsis:            Concise Binary Object Representation (CBOR) license:             BSD3 license-file:        LICENSE.txt@@ -13,14 +13,13 @@ build-type:          Simple cabal-version:       >= 1.10 tested-with:-  GHC == 8.0.2,-  GHC == 8.2.2,   GHC == 8.4.4,   GHC == 8.6.5,   GHC == 8.8.3,-  GHC == 8.10.1,+  GHC == 8.10.7,   GHC == 9.0.1,-  GHC == 9.2.2+  GHC == 9.2.2,+  GHC == 9.4.2  extra-source-files:   ChangeLog.md@@ -90,11 +89,11 @@    build-depends:     array                   >= 0.4     && < 0.6,-    base                    >= 4.8     && < 4.17,+    base                    >= 4.11    && < 4.18,     bytestring              >= 0.10.4  && < 0.12,     containers              >= 0.5     && < 0.7,     deepseq                 >= 1.0     && < 1.5,-    ghc-prim                >= 0.3.1.0 && < 0.9,+    ghc-prim                >= 0.3.1.0 && < 0.10,     half                    >= 0.2.2.3 && < 0.4,     primitive               >= 0.5     && < 0.8,     text                    >= 1.1     && < 1.3 || >= 2.0 && <2.1@@ -148,12 +147,12 @@    build-depends:     array                   >= 0.4     && < 0.6,-    base                    >= 4.7     && < 4.17,+    base                    >= 4.11    && < 4.18,     base-orphans,     bytestring              >= 0.10.4  && < 0.12,     text                    >= 1.1     && < 2.1,     cborg,-    aeson                   >= 0.7     && < 2.1,+    aeson                   >= 0.7     && < 2.2,     base64-bytestring       >= 1.0     && < 1.3,     base16-bytestring       >= 1.0     && < 1.1,     deepseq                 >= 1.0     && < 1.5,
src/Codec/CBOR/Decoding.hs view
@@ -328,8 +328,13 @@ toWord16 n = W16# (wordToWord16# n) toWord32 n = W32# (wordToWord32# n) #if WORD_SIZE_IN_BITS == 64+#if MIN_VERSION_base(4,17,0)+toInt64  n = I64# (intToInt64# n)+toWord64 n = W64# (wordToWord64# n)+#else toInt64  n = I64# n toWord64 n = W64# n+#endif #else toInt64  n = I64# (intToInt64# n) toWord64 n = W64# (wordToWord64# n)@@ -748,8 +753,14 @@ {-# INLINE decodeTag64 #-} decodeTag64 = #if defined(ARCH_64bit)-  Decoder (\k -> return (ConsumeTag (\w# -> k (W64# w#))))+  Decoder (\k -> return (ConsumeTag (\w# -> k (W64#+#if MIN_VERSION_base(4,17,0)+    (wordToWord64# w#) #else+    w#+#endif+  ))))+#else   Decoder (\k -> return (ConsumeTag64 (\w64# -> k (W64# w64#)))) #endif @@ -769,8 +780,14 @@ {-# INLINE decodeTag64Canonical #-} decodeTag64Canonical = #if defined(ARCH_64bit)-  Decoder (\k -> return (ConsumeTagCanonical (\w# -> k (W64# w#))))+  Decoder (\k -> return (ConsumeTagCanonical (\w# -> k (W64#+#if MIN_VERSION_base(4,17,0)+    (wordToWord64# w#) #else+    w#+#endif+  ))))+#else   Decoder (\k -> return (ConsumeTag64Canonical (\w64# -> k (W64# w64#)))) #endif @@ -968,7 +985,13 @@ -- -- @since 0.2.2.0 peekByteOffset :: Decoder s ByteOffset-peekByteOffset = Decoder (\k -> return (PeekByteOffset (\off# -> k (I64# off#))))+peekByteOffset = Decoder (\k -> return (PeekByteOffset (\off# -> k (I64#+#if MIN_VERSION_base(4,17,0)+        (intToInt64# off#)+#else+        off#+#endif+    )))) {-# INLINE peekByteOffset #-}  -- | This captures the pattern of getting the byte offsets before and after
src/Codec/CBOR/FlatTerm.hs view
@@ -170,12 +170,24 @@               -- always starts by requesting initial input. Only decoders that               -- fail or return a value without looking at their input can give               -- a different initial result.-              Read.Partial k <- Read.deserialiseIncremental decodeTermToken+              result <- Read.deserialiseIncremental decodeTermToken+              let+                k =+                  case result of+                    Read.Partial a -> a+                    _ -> error "Failed to get a Partial"               k (Just bs)           collectOutput next      collectOutput :: Read.IDecode s TermToken -> ST.Lazy.ST s FlatTerm-    collectOutput (Read.Fail _ _ err) = fail $ "toFlatTerm: encodePreEncoded "+    collectOutput (Read.Fail _ _ err) =+#if MIN_VERSION_base(4,17,0)+                                        error+#else+                                        fail+#endif++                                             $ "toFlatTerm: encodePreEncoded "                                             ++ "used with invalid CBOR: "                                             ++ show err     collectOutput (Read.Partial    k) = ST.Lazy.strictToLazyST (k Nothing)
src/Codec/CBOR/Magic.hs view
@@ -109,7 +109,7 @@ import qualified Data.ByteString          as BS import qualified Data.ByteString.Internal as BS import qualified Data.ByteString.Unsafe   as BS-import           Data.Primitive.ByteArray as Prim hiding (copyByteArrayToPtr)+import           Data.Primitive.ByteArray as Prim hiding (copyByteArrayToPtr, copyPtrToMutableByteArray)  import           Foreign.ForeignPtr (withForeignPtr) import           Foreign.C (CUShort)@@ -167,7 +167,11 @@ grabWord32 (Ptr ip#) = W32# (narrow32Word# (byteSwap32# (indexWord32OffAddr# ip# 0#))) #endif #if defined(ARCH_64bit)+#if MIN_VERSION_base(4,17,0)+grabWord64 (Ptr ip#) = W64# (wordToWord64# (byteSwap# (word64ToWord# (indexWord64OffAddr# ip# 0#))))+#else grabWord64 (Ptr ip#) = W64# (byteSwap# (indexWord64OffAddr# ip# 0#))+#endif #else grabWord64 (Ptr ip#) = W64# (byteSwap64# (word64ToWord# (indexWord64OffAddr# ip# 0#))) #endif@@ -196,8 +200,8 @@   where #if MIN_VERSION_ghc_prim(0,8,0)     w16 w# = W16# (wordToWord16# (word8ToWord# w#))-#else -    w16 w# = W16# w#  +#else+    w16 w# = W16# w# #endif  grabWord32 (Ptr ip#) =@@ -212,11 +216,11 @@                   w32 w1# `unsafeShiftL` 16 .|.                   w32 w2# `unsafeShiftL`  8 .|.                   w32 w3#-  where +  where #if MIN_VERSION_ghc_prim(0,8,0)     w32 w# = W32# (wordToWord32# (word8ToWord# w#))-#else -    w32 w# = W32# w#  +#else+    w32 w# = W32# w# #endif  grabWord64 (Ptr ip#) =@@ -247,14 +251,14 @@ #if MIN_VERSION_ghc_prim(0,8,0)     toWord :: Word8# -> Word#     toWord w# = word8ToWord# w#-#else +#else     toWord :: Word# -> Word#-    toWord w# = w#  +    toWord w# = w# #endif  #if WORD_SIZE_IN_BITS == 64     w64 w# = W64# (toWord w#)-#else +#else     w64 w# = W64# (wordToWord64# (toWord w#)) #endif @@ -439,7 +443,11 @@ word16ToWord (W16# w#) = W# (word16ToWord# w#) word32ToWord (W32# w#) = W# (word32ToWord# w#) #if defined(ARCH_64bit)+#if MIN_VERSION_base(4,17,0)+word64ToWord (W64# w#) = W# (word64ToWord# w#)+#else word64ToWord (W64# w#) = W# w#+#endif #else word64ToWord (W64# w64#) =   case isTrue# (w64# `leWord64#` wordToWord64# 0xffffffff##) of@@ -492,8 +500,18 @@  #if defined(ARCH_64bit) word64ToInt (W64# w#) =+#if MIN_VERSION_base(4,17,0)+  case isTrue# (word64ToWord# w# `ltWord#` 0x8000000000000000##) of+#else   case isTrue# (w# `ltWord#` 0x8000000000000000##) of-    True  -> Just (I# (word2Int# w#))+#endif+    True  ->+#if MIN_VERSION_base(4,17,0)+        Just (I# (word2Int# (word64ToWord# w#)))++#else+        Just (I# (word2Int# w#))+#endif     False -> Nothing #else word64ToInt (W64# w#) =
src/Codec/CBOR/Read.hs view
@@ -1270,7 +1270,14 @@         !offset' = offset + intToInt64 (BS.length bs - BS.length bs')      SlowPeekByteOffset bs' k ->-      lift (k off#) >>= \daz -> go_slow daz bs' offset'+      lift+#if MIN_VERSION_base(4,17,0)+        (k (int64ToInt# off#))+#else+        (k off#)++#endif+        >>= \daz -> go_slow daz bs' offset'       where         !offset'@(I64# off#) = offset + intToInt64 (BS.length bs - BS.length bs') @@ -1373,7 +1380,13 @@        SlowPeekByteOffset bs_empty k ->         assert (BS.null bs_empty) $ do-        lift (k off#) >>= \daz -> go_slow daz bs' offset'+        lift+#if MIN_VERSION_base(4,17,0)+          (k (int64ToInt# off#))+#else+          (k off#)+#endif+          >>= \daz -> go_slow daz bs' offset'         where           !(I64# off#) = offset'