packages feed

xor-0.0.1.4: xor.cabal

cabal-version:       2.2
name:                xor
version:             0.0.1.4

category:            Data, Codec
author:              Herbert Valerio Riedel
maintainer:          Andreas Abel
bug-reports:         https://github.com/haskell-hvr/xor/issues

copyright:           © 2020  Herbert Valerio Riedel
license:             GPL-2.0-or-later
license-file:        LICENSE.GPLv2

synopsis: Efficient XOR masking
description:
  This package provides efficient implementations of routines for applying <https://en.wikipedia.org/wiki/Bitwise_operation#XOR bitwise XOR> masks to binary data.
  .
  The currently supported operations (see "Data.XOR" API documentation for more details) are applying
  .
  * 8-bit  wide XOR masks or
  * 32-bit wide XOR masks
  .
  to binary data represented by
  .
  * Strict @ByteString@s,
  * Lazy @ByteString@s,
  * @ShortByteString@s (i.e. @ByteArray#@s), or
  * @CStringLen@ (i.e. @Ptr@s).
  .
  The performance is comparable to portable ISO C99 implementations but this library is implemented as pure Haskell and is thereby compatible with compile targets such as <https://github.com/ghcjs/ghcjs GHCJS>.

tested-with:
  GHC == 9.14.1
  GHC == 9.12.2
  GHC == 9.10.3
  GHC == 9.8.4
  GHC == 9.6.7
  GHC == 9.4.8
  GHC == 9.2.8
  GHC == 9.0.2
  GHC == 8.10.7
  GHC == 8.8.4
  GHC == 8.6.5
  GHC == 8.4.4

extra-doc-files:
  CHANGELOG.md

source-repository head
  type:     git
  location: https://github.com/haskell-hvr/xor.git

common defaults
  default-language:    Haskell2010
  other-extensions:    CPP
                       BangPatterns
                       UnboxedTuples
                       MagicHash

  build-depends:
    , base            >= 4.11      && < 5
        -- GHC.ByteOrder ships with base-4.11 and up
    , bytestring      >= 0.10.8.2  && < 0.13
        -- bytestring-0.10.8.2 ships with GHC 8.4

  ghc-options:
    -Wall
    -Wcompat

library
  import: defaults

  hs-source-dirs: src
  exposed-modules:
    Data.XOR

  other-modules:
    Endianness

benchmark bench
  import: defaults

  type: exitcode-stdio-1.0

  hs-source-dirs:      src-bench
  main-is:             Main.hs

  build-depends:
    , xor
      -- dependencies specific to this component
    , criterion ^>= 1.5.6 || ^>= 1.6.0.0

test-suite test
  import: defaults

  type: exitcode-stdio-1.0

  hs-source-dirs:      src-test
  main-is:             Main.hs

  build-depends:

  build-depends:
    , xor
      -- dependencies specific to this component
    , tasty             >= 1.2.3 && < 1.6
    , tasty-hunit      ^>= 0.10
    , tasty-quickcheck  >= 0.10  && < 1
    , QuickCheck        >= 2.14  && < 3