packages feed

bytezap 1.3.0 → 1.3.1

raw patch · 6 files changed

+59/−11 lines, 6 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Bytezap.Parser.Struct.TypeLits.Bytes: parseReifyBytesW64 :: ParseReifyBytesW64 ns => ParserT st e ()
+ Bytezap.Parser.Struct.TypeLits.Bytes: parseReifyBytesW64 :: ParseReifyBytesW64 ns => ParserT st Void ()

Files

CHANGELOG.md view
@@ -1,3 +1,6 @@+## 1.3.1 (2024-07-15)+* fix building on GHC 9.8 and probably 9.10+ ## 1.3.0 (2024-04-13) * move type-level byte stuff to another package 
bytezap.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           bytezap-version:        1.3.0+version:        1.3.1 synopsis:       Bytestring builder with zero intermediate allocation description:    Please see README.md. category:       Data, Serialization, Generics@@ -76,5 +76,5 @@     , generic-type-functions >=0.1.0 && <0.2     , primitive >=0.8.0.0 && <0.10.0.0     , text >=2.0.2 && <2.2-    , type-level-bytestrings >=0.1.0 && <0.2+    , type-level-bytestrings >=0.1.0 && <0.3   default-language: GHC2021
src/Bytezap/Parser/Struct/TypeLits/Bytes.hs view
@@ -11,9 +11,10 @@ import Data.Type.Byte import Bytezap.Parser.Struct ( ParserT, prim, withLit, constParse ) import Numeric.Natural ( Natural )+import Data.Void ( Void )  class ParseReifyBytesW64 (ns :: [Natural]) where-    parseReifyBytesW64 :: ParserT st e ()+    parseReifyBytesW64 :: ParserT st Void ()  -- | Enough bytes to make a 'Word64'. instance {-# OVERLAPPING #-}
src/Bytezap/Struct.hs view
@@ -23,6 +23,7 @@ module Bytezap.Struct where  import GHC.Exts+import Raehik.Compat.GHC.Exts.GHC908MemcpyPrimops ( setAddrRange# ) import Raehik.Compat.Data.Primitive.Types  import Control.Monad.Primitive ( MonadPrim, primitive )@@ -31,7 +32,6 @@ import Data.ByteString.Internal qualified as BS  import GHC.Word ( Word8(W8#) )-import Raehik.Compat.GHC.Exts.GHC908MemcpyPrimops ( setAddrRange# )  -- | A struct poker: base address (constant), byte offset, state token. --
src/Raehik/Compat/GHC/Exts/GHC908MemcpyPrimops.hs view
@@ -1,8 +1,22 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE UnboxedTuples #-} -module Raehik.Compat.GHC.Exts.GHC908MemcpyPrimops where+-- On supported GHCs, we simply re-export. This means unused import warnings.+-- Sorry idk how to fix that. +module Raehik.Compat.GHC.Exts.GHC908MemcpyPrimops+  ( copyAddrToAddrNonOverlapping#+  , setAddrRange#+  ) where+ import GHC.Exts++#if MIN_VERSION_base(4,19,0)++-- These should all be imported from GHC.Exts, so above is simply re-exporting.++#else+ import GHC.IO ( unIO ) import Foreign.Marshal.Utils ( copyBytes, fillBytes ) @@ -17,3 +31,5 @@ setAddrRange# dest# w# len# s0 =     case unIO (fillBytes (Ptr dest#) (fromIntegral (I# w#)) (I# len#)) s0 of       (# s1, () #) -> s1++#endif
src/Raehik/Compat/GHC/Exts/GHC910UnalignedAddrPrimops.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE UnboxedTuples #-}+ {- (index|read|write)<ty>OffAddr# primops fail when unaligned on platforms not supporting unaligned accesses. GHC 9.10 introduces new primops that handle@@ -9,20 +12,45 @@ non-GC-managed.  Import this module unqualified along with 'GHC.Exts' .++On supported GHCs, we simply re-export. This means unused import warnings.+Sorry idk how to fix that. -} -{-# LANGUAGE CPP #-}-{-# LANGUAGE UnboxedTuples #-}+module Raehik.Compat.GHC.Exts.GHC910UnalignedAddrPrimops+  ( indexWord8OffAddrAsWord16#+  , indexWord8OffAddrAsWord32#+  , indexWord8OffAddrAsWord64#+  , indexWord8OffAddrAsWord#+  , indexWord8OffAddrAsInt16#+  , indexWord8OffAddrAsInt32#+  , indexWord8OffAddrAsInt64#+  , indexWord8OffAddrAsInt#+  , readWord8OffAddrAsWord16#+  , readWord8OffAddrAsWord32#+  , readWord8OffAddrAsWord64#+  , readWord8OffAddrAsWord#+  , readWord8OffAddrAsInt16#+  , readWord8OffAddrAsInt32#+  , readWord8OffAddrAsInt64#+  , readWord8OffAddrAsInt#+  , writeWord8OffAddrAsWord16#+  , writeWord8OffAddrAsWord32#+  , writeWord8OffAddrAsWord64#+  , writeWord8OffAddrAsWord#+  , writeWord8OffAddrAsInt16#+  , writeWord8OffAddrAsInt32#+  , writeWord8OffAddrAsInt64#+  , writeWord8OffAddrAsInt#+  ) where -module Raehik.Compat.GHC.Exts.GHC910UnalignedAddrPrimops where+import GHC.Exts  #if MIN_VERSION_base(4,20,0) --- These should be in base-4.20.0.0.+-- These should all be imported from GHC.Exts, so above is simply re-exporting.  #else--import GHC.Exts  indexWord8OffAddrAsWord16# :: Addr# -> Int# -> Word16# indexWord8OffAddrAsWord16# addr# os# =