xor-0.0.1.2: xor.cabal
cabal-version: 2.2
name: xor
version: 0.0.1.2
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.6.2
GHC == 9.4.5
GHC == 9.2.8
GHC == 9.0.2
GHC == 8.10.7
GHC == 8.8.4
GHC == 8.6.5
GHC == 8.4.4
GHC == 8.2.2
GHC == 8.0.2
GHC == 7.10.3
GHC == 7.8.4
GHC == 7.6.3
GHC == 7.4.2
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.5 && < 4.19
, bytestring >= 0.10.4 && < 0.13
, ghc-byteorder ^>= 4.11.0.0
-- Andreas Abel, 2022-02-16:
-- There are build failures with bytestring-0.11 and GHC 7
-- because the PS constructor was removed and retained as PatternSynonym
-- (for GHC 8 only, according to the release notes).
-- The following dependency rectifies this:
if !impl(ghc >= 8.0)
build-depends:
bytestring < 0.11
ghc-options: -Wall
if impl(ghc >= 8.0)
ghc-options: -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.5
, tasty-hunit ^>= 0.10
, tasty-quickcheck ^>= 0.10
, QuickCheck ^>= 2.14