Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
166 changes: 90 additions & 76 deletions hw-simd.cabal
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cabal-version: 1.12
cabal-version: 2.2
name: hw-simd
version: 0.1.1.3
synopsis: SIMD library
Expand All @@ -9,7 +9,7 @@ bug-reports: https://github.com/haskell-works/hw-simd/issues
author: John Ky
maintainer: newhoggy@gmail.com
copyright: 2018 John Ky
license: BSD3
license: BSD-3-Clause
license-file: LICENSE
tested-with: GHC == 8.6.4, GHC == 8.4.4, GHC == 8.2.2, GHC == 8.0.2
build-type: Simple
Expand Down Expand Up @@ -38,7 +38,45 @@ flag sse42
manual: False
default: True

common base { build-depends: base >= 4.7 && < 5 }
common bits-extra { build-depends: bits-extra >= 0.0.1.2 && < 0.1 }
common bytestring { build-depends: bytestring >= 0.10 && < 0.11 }
common cassava { build-depends: cassava >= 0.5.1.0 && < 0.6 }
common containers { build-depends: containers }
common criterion { build-depends: criterion >= 1.4.1.0 && < 1.6 }
common deepseq { build-depends: deepseq >= 1.4 && < 1.5 }
common directory { build-depends: directory >= 1.2.2 && < 1.4 }
common hedgehog { build-depends: hedgehog >= 0.5 && < 0.7 }
common hspec { build-depends: hspec >= 2.4 && < 3 }
common hw-bits { build-depends: hw-bits >= 0.7.0.2 && < 0.8 }
common hw-hedgehog { build-depends: hw-hedgehog >= 0.1.0.1 && < 0.2 }
common hw-hspec-hedgehog { build-depends: hw-hspec-hedgehog >= 0.1.0.4 && < 0.2 }
common hw-prim { build-depends: hw-prim >= 0.6.2.12 && < 0.7 }
common hw-rankselect { build-depends: hw-rankselect >= 0.12.0.2 && < 0.13 }
common hw-rankselect-base { build-depends: hw-rankselect-base >= 0.3.2.0 && < 0.4 }
common lens { build-depends: lens }
common mmap { build-depends: mmap >= 0.5.9 && < 0.6 }
common text { build-depends: text >= 1.2.2 && < 2.0 }
common vector { build-depends: vector >= 0.12.0.1 && < 0.13 }

common semigroups { if (!impl(ghc >= 8.0.1)) { build-depends: semigroups >= 0.8.4 && < 0.19 } }
common transformers { if (!impl(ghc >= 8.0.1)) { build-depends: transformers >= 0.4 && < 0.6 } }

common common
default-language: Haskell2010

library
import: base, common
, bits-extra
, bytestring
, deepseq
, hw-bits
, hw-prim
, hw-rankselect
, hw-rankselect-base
, semigroups
, transformers
, vector
exposed-modules:
HaskellWorks.Data.Simd.Capabilities
HaskellWorks.Data.Simd.ChunkString
Expand All @@ -53,26 +91,14 @@ library
HaskellWorks.Data.Simd.Logical
HaskellWorks.Data.Simd.Logical.Avx2
HaskellWorks.Data.Simd.Logical.Stock
other-modules:
Paths_hw_simd
hs-source-dirs:
src
ghc-options: -O2 -Wall
include-dirs:
cbits
other-modules: Paths_hw_simd
autogen-modules: Paths_hw_simd
hs-source-dirs: src
ghc-options: -O2 -Wall
include-dirs: cbits
c-sources:
cbits/simd_avx2.c
cbits/simd_sse2.c
build-depends:
base >=4.7 && <5
, bits-extra >=0.0.1.2 && <0.1
, bytestring >=0.10 && <0.11
, deepseq >=1.4 && <1.5
, hw-bits >=0.7.0.2 && <0.8
, hw-prim >=0.6.2.12 && <0.7
, hw-rankselect >=0.12.0.2 && <0.13
, hw-rankselect-base >=0.3.2.0 && <0.4
, vector >=0.12.0.1 && <0.13
if flag(sse42)
ghc-options: -msse4.2
cc-options: -msse4.2
Expand All @@ -93,37 +119,35 @@ library
, transformers >=0.4 && <0.6
build-tools:
c2hs
default-language: Haskell2010

test-suite hw-simd-test
type: exitcode-stdio-1.0
main-is: Spec.hs
import: base, common
, bits-extra
, bytestring
, deepseq
, directory
, hedgehog
, hspec
, hw-bits
, hw-hedgehog
, hw-hspec-hedgehog
, hw-prim
, hw-rankselect
, hw-rankselect-base
, lens
, text
, vector
type: exitcode-stdio-1.0
main-is: Spec.hs
build-depends: hw-simd
other-modules:
HaskellWorks.Data.Simd.ComparisonSpec
HaskellWorks.Data.Simd.Internal.BroadwordSpec
HaskellWorks.Data.Simd.LogicalSpec
Paths_hw_simd
hs-source-dirs:
test
ghc-options: -O2 -Wall -threaded -rtsopts -with-rtsopts=-N
build-depends:
base >=4.7 && <5
, bits-extra >=0.0.1.2 && <0.1
, bytestring >=0.10 && <0.11
, deepseq >=1.4 && <1.5
, directory >=1.2.2 && <1.4
, hedgehog >=0.5 && <0.7
, hspec >=2.4 && <3
, hw-bits >=0.7.0.2 && <0.8
, hw-hedgehog >=0.1.0.1 && <0.2
, hw-hspec-hedgehog >=0.1.0.4 && <0.2
, hw-prim >=0.6.2.12 && <0.7
, hw-rankselect >=0.12.0.2 && <0.13
, hw-rankselect-base >=0.3.2.0 && <0.4
, hw-simd
, lens
, text >=1.2.2 && <2.0
, vector >=0.12.0.1 && <0.13
autogen-modules: Paths_hw_simd
hs-source-dirs: test
ghc-options: -O2 -Wall -threaded -rtsopts -with-rtsopts=-N
if flag(sse42)
ghc-options: -msse4.2
cc-options: -msse4.2
Expand All @@ -138,37 +162,32 @@ test-suite hw-simd-test
cpp-options: -DBMI2_ENABLED -DAVX2_ENABLED
if (impl(ghc >=8.0.1))
ghc-options: -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints
if (!impl(ghc >=8.0.1))
build-depends:
semigroups >=0.8.4 && <0.19
, transformers >=0.4 && <0.6
default-language: Haskell2010
build-tool-depends: hspec-discover:hspec-discover

benchmark bench
type: exitcode-stdio-1.0
main-is: Main.hs
other-modules:
Paths_hw_simd
hs-source-dirs:
bench
ghc-options: -O2 -Wall -msse4.2
build-depends:
base >=4.7 && <5
, bits-extra >=0.0.1.2 && <0.1
, bytestring >=0.10 && <0.11
, cassava >=0.5.1.0 && <0.6
, containers
, criterion >=1.4.1.0 && <1.6
, deepseq >=1.4 && <1.5
, directory >=1.3.1.5 && <1.4
, hw-bits >=0.7.0.2 && <0.8
, hw-prim >=0.6.2.12 && <0.7
, hw-rankselect >=0.12.0.2 && <0.13
, hw-rankselect-base >=0.3.2.0 && <0.4
, hw-simd
, mmap >=0.5.9 && <0.6
, vector >=0.12.0.1 && <0.13
import: base, common
, bits-extra
, bytestring
, cassava
, containers
, criterion
, deepseq
, directory
, hw-bits
, hw-prim
, hw-rankselect
, hw-rankselect-base
, mmap
, semigroups
, transformers
, vector
type: exitcode-stdio-1.0
main-is: Main.hs
other-modules: Paths_hw_simd
autogen-modules: Paths_hw_simd
hs-source-dirs: bench
ghc-options: -O2 -Wall -msse4.2
build-depends: hw-simd
if flag(sse42)
ghc-options: -msse4.2
cc-options: -msse4.2
Expand All @@ -183,8 +202,3 @@ benchmark bench
cpp-options: -DBMI2_ENABLED -DAVX2_ENABLED
if (impl(ghc >=8.0.1))
ghc-options: -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints
if (!impl(ghc >=8.0.1))
build-depends:
semigroups >=0.8.4 && <0.19
, transformers >=0.4 && <0.6
default-language: Haskell2010