packages feed

Cabal revisions of vector-quicksort-0.1

Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.

revision 1
-cabal-version: 3.0--name:-  vector-quicksort-version:-  0.1--synopsis:-  Fast and flexible quicksort implementation for mutable vectors--description:--  Quicksort implementation developed with performance in mind. Has-  good default single-threaded sort and provides parallelised versions-  that are actually faster than the single-threaded version. Users can-  define new parallelisation methods.--  Good starting point:--  > import Data.Vector.Algorithms.Quicksort qualified as Quick--  Then call as--  > Quick.sort xs--copyright:-  (c) Sergey Vinokurov 2022-license:-  Apache-2.0-license-file:-  LICENSE-author:-  Sergey Vinokurov-maintainer:-  Sergey Vinokurov <serg.foo@gmail.com>-category:-  Algorithms--build-type:-  Simple--extra-source-files:-  Readme.md--homepage:-  https://github.com/sergv/vector-quicksort--source-repository head-  type: git-  location: https://github.com/sergv/vector-quicksort.git--common ghc-options-  default-language:-    GHC2021--  default-extensions:-    ImportQualifiedPost-    LambdaCase--  ghc-options:-    -O2-    -Weverything-    -Wno-all-missed-specialisations-    -Wno-implicit-prelude-    -Wno-missed-specialisations-    -Wno-missing-import-lists-    -Wno-missing-local-signatures-    -Wno-missing-safe-haskell-mode-    -Wno-safe-    -Wno-type-defaults-    -Wno-unsafe-    -Wno-unused-packages--  if impl(ghc >= 8.8)-    ghc-options:-      -Wno-missing-deriving-strategies--  if impl(ghc >= 9.2)-    ghc-options:-      -Wno-missing-kind-signatures--library-  import: ghc-options-  exposed-modules:-    Data.Vector.Algorithms.FixedSort-    Data.Vector.Algorithms.Heapsort-    Data.Vector.Algorithms.Quicksort-    Data.Vector.Algorithms.Quicksort.Fork2-    Data.Vector.Algorithms.Quicksort.Median-    Data.Vector.Algorithms.Quicksort.Parameterised-  hs-source-dirs:-    src-  build-depends:-    , base >= 4.14 && < 5-    , primitive-    , stm-    , vector--library vector-quicksort-predefined-  import: ghc-options--  exposed-modules:-    Data.Vector.Algorithms.Quicksort.Predefined.AveragingMedian-    Data.Vector.Algorithms.Quicksort.Predefined.Pair--    Data.Vector.Algorithms.Quicksort.Predefined.BitonicIntST--    Data.Vector.Algorithms.Quicksort.Predefined.PIntParallelMedian3IO-    Data.Vector.Algorithms.Quicksort.Predefined.PIntParallelMedian3or5IO--    Data.Vector.Algorithms.Quicksort.Predefined.PIntSequentialMedian3ST-    Data.Vector.Algorithms.Quicksort.Predefined.PIntSequentialMedian3IO-    Data.Vector.Algorithms.Quicksort.Predefined.PIntParallelStrategiesMedian3ST-    Data.Vector.Algorithms.Quicksort.Predefined.PIntParallelStrategiesMedian3IO-    Data.Vector.Algorithms.Quicksort.Predefined.PIntSequentialMedian3or5ST-    Data.Vector.Algorithms.Quicksort.Predefined.PIntSequentialMedian3or5IO-    Data.Vector.Algorithms.Quicksort.Predefined.PIntParallelStrategiesMedian3or5ST-    Data.Vector.Algorithms.Quicksort.Predefined.PIntParallelStrategiesMedian3or5IO--    Data.Vector.Algorithms.Quicksort.Predefined.PIntSequentialAveragingMedianST-    Data.Vector.Algorithms.Quicksort.Predefined.UPairSequentialAveragingMedianST--    Data.Vector.Algorithms.Quicksort.Predefined.VIntSequentialMedian3ST-    Data.Vector.Algorithms.Quicksort.Predefined.VIntSequentialMedian3IO-    Data.Vector.Algorithms.Quicksort.Predefined.VPairSequentialMedian3ST-    Data.Vector.Algorithms.Quicksort.Predefined.VPairSequentialMedian3IO-    Data.Vector.Algorithms.Quicksort.Predefined.VIntParallelStrategiesMedian3ST-    Data.Vector.Algorithms.Quicksort.Predefined.VIntParallelStrategiesMedian3IO-    Data.Vector.Algorithms.Quicksort.Predefined.VPairParallelStrategiesMedian3ST-    Data.Vector.Algorithms.Quicksort.Predefined.VPairParallelStrategiesMedian3IO--    Data.Vector.Algorithms.Quicksort.Predefined.VIntSequentialMedian3or5ST-    Data.Vector.Algorithms.Quicksort.Predefined.VIntSequentialMedian3or5IO-    Data.Vector.Algorithms.Quicksort.Predefined.VPairSequentialMedian3or5ST-    Data.Vector.Algorithms.Quicksort.Predefined.VPairSequentialMedian3or5IO-    Data.Vector.Algorithms.Quicksort.Predefined.VIntParallelStrategiesMedian3or5ST-    Data.Vector.Algorithms.Quicksort.Predefined.VIntParallelStrategiesMedian3or5IO-    Data.Vector.Algorithms.Quicksort.Predefined.VPairParallelStrategiesMedian3or5ST-    Data.Vector.Algorithms.Quicksort.Predefined.VPairParallelStrategiesMedian3or5IO--    Data.Vector.Algorithms.Quicksort.Predefined.UIntSequentialMedian3ST-    Data.Vector.Algorithms.Quicksort.Predefined.UIntSequentialMedian3IO-    Data.Vector.Algorithms.Quicksort.Predefined.UPairSequentialMedian3ST-    Data.Vector.Algorithms.Quicksort.Predefined.UPairSequentialMedian3IO-    Data.Vector.Algorithms.Quicksort.Predefined.UIntParallelStrategiesMedian3ST-    Data.Vector.Algorithms.Quicksort.Predefined.UIntParallelStrategiesMedian3IO-    Data.Vector.Algorithms.Quicksort.Predefined.UPairParallelStrategiesMedian3ST-    Data.Vector.Algorithms.Quicksort.Predefined.UPairParallelStrategiesMedian3IO--    Data.Vector.Algorithms.Quicksort.Predefined.UIntSequentialMedian3or5ST-    Data.Vector.Algorithms.Quicksort.Predefined.UIntSequentialMedian3or5IO-    Data.Vector.Algorithms.Quicksort.Predefined.UPairSequentialMedian3or5ST-    Data.Vector.Algorithms.Quicksort.Predefined.UPairSequentialMedian3or5IO-    Data.Vector.Algorithms.Quicksort.Predefined.UIntParallelStrategiesMedian3or5ST-    Data.Vector.Algorithms.Quicksort.Predefined.UIntParallelStrategiesMedian3or5IO-    Data.Vector.Algorithms.Quicksort.Predefined.UPairParallelStrategiesMedian3or5ST-    Data.Vector.Algorithms.Quicksort.Predefined.UPairParallelStrategiesMedian3or5IO--    Data.Vector.Algorithms.Quicksort.Predefined.VTupleSequentialMedian3ST-    Data.Vector.Algorithms.Quicksort.Predefined.VTupleSequentialMedian3IO-    Data.Vector.Algorithms.Quicksort.Predefined.VTupleParallelStrategiesMedian3ST-    Data.Vector.Algorithms.Quicksort.Predefined.VTupleParallelStrategiesMedian3IO-    Data.Vector.Algorithms.Quicksort.Predefined.VTupleSequentialMedian3or5ST-    Data.Vector.Algorithms.Quicksort.Predefined.VTupleSequentialMedian3or5IO-    Data.Vector.Algorithms.Quicksort.Predefined.VTupleParallelStrategiesMedian3or5ST-    Data.Vector.Algorithms.Quicksort.Predefined.VTupleParallelStrategiesMedian3or5IO-    Data.Vector.Algorithms.Quicksort.Predefined.UTupleSequentialMedian3ST-    Data.Vector.Algorithms.Quicksort.Predefined.UTupleSequentialMedian3IO-    Data.Vector.Algorithms.Quicksort.Predefined.UTupleParallelStrategiesMedian3ST-    Data.Vector.Algorithms.Quicksort.Predefined.UTupleParallelStrategiesMedian3IO-    Data.Vector.Algorithms.Quicksort.Predefined.UTupleSequentialMedian3or5ST-    Data.Vector.Algorithms.Quicksort.Predefined.UTupleSequentialMedian3or5IO-    Data.Vector.Algorithms.Quicksort.Predefined.UTupleParallelStrategiesMedian3or5ST-    Data.Vector.Algorithms.Quicksort.Predefined.UTupleParallelStrategiesMedian3or5IO--  hs-source-dirs:-    src-predefined--  build-depends:-    , base >= 4.14-    , parallel-    , primitive-    , stm-    , vector-    , vector-quicksort--test-suite test-  import: ghc-options-  type:-    exitcode-stdio-1.0-  main-is:-    test/TestMain.hs-  other-modules:-    Data.Vector.Algorithms.Quicksort.Tests-  hs-source-dirs:-    .-    test-  build-depends:-    , QuickCheck-    , base >= 4.14-    , containers-    , tasty-    , tasty-quickcheck-    , vector-    , vector-quicksort-predefined-  ghc-options:-    -rtsopts-    -threaded-    "-with-rtsopts=-N -A16m -n1m -qg -qb"-    -main-is TestMain--library vector-quicksort-cpp-  default-language:-    GHC2021-  include-dirs:-    cbits-  cxx-sources:-    cbits/sort.cpp-  cxx-options:-    -std=c++17-  -- Just like in the ‘text’ package, less critical for us since this-  -- is a library for testing and benchmarking only.-  if impl(ghc >= 9.4)-    build-depends: system-cxx-std-lib == 1.0-  elif os(darwin) || os(freebsd)-    extra-libraries: c++-  elif os(openbsd)-    extra-libraries: c++ c++abi pthread-  elif os(windows)-    -- GHC's Windows toolchain is based on clang/libc++ in GHC 9.4 and later-    if impl(ghc < 9.3)-      extra-libraries: stdc++-    else-      extra-libraries: c++ c++abi-  elif os(linux)-    extra-libraries: stdc++-  else-    -- This is supposed to be under arch(wasm32), but we can't do that yet-    -- since cabal check would fail with unrecognized arch, see-    -- https://github.com/haskell/cabal/pull/8096 for the fix.-    -- TODO: when a new cabal release is out with that fix, bump cabal in CI-    -- and add proper arch(wasm32) declaration here.-    cpp-options: -DSIMDUTF_NO_THREADS-    cxx-options: -fno-exceptions-    extra-libraries: c++ c++abi--benchmark bench-  import: ghc-options-  type:-    exitcode-stdio-1.0-  main-is:-    BenchMain.hs-  other-modules:-    ForeignSorting-  hs-source-dirs:-    bench-  build-depends:-    , atomic-counter-    , base >= 4.14-    , bytestring-    , deepseq-    , primitive-    , random-    , stm-    , tasty-    , tasty-bench >= 0.3.2-    , text-    , text-builder-linear-    , vector-    , vector-algorithms-    , vector-quicksort-    , vector-quicksort-cpp-    , vector-quicksort-predefined-  ghc-options:-    -fno-spec-constr-    -rtsopts-    -threaded-    "-with-rtsopts=-N -A16m -n1m -qg -qb"-    -main-is BenchmarkMain+cabal-version: 3.0
+
+name:
+  vector-quicksort
+version:
+  0.1
+x-revision: 1
+
+synopsis:
+  Fast and flexible quicksort implementation for mutable vectors
+
+description:
+
+  Quicksort implementation developed with performance in mind. Has
+  good default single-threaded sort and provides parallelised versions
+  that are actually faster than the single-threaded version. Users can
+  define new parallelisation methods.
+
+  Good starting point:
+
+  > import Data.Vector.Algorithms.Quicksort qualified as Quick
+
+  Then call as
+
+  > Quick.sort xs
+
+copyright:
+  (c) Sergey Vinokurov 2022
+license:
+  Apache-2.0
+license-file:
+  LICENSE
+author:
+  Sergey Vinokurov
+maintainer:
+  Sergey Vinokurov <serg.foo@gmail.com>
+category:
+  Algorithms
+
+build-type:
+  Simple
+
+extra-source-files:
+  Readme.md
+
+homepage:
+  https://github.com/sergv/vector-quicksort
+
+source-repository head
+  type: git
+  location: https://github.com/sergv/vector-quicksort.git
+
+common ghc-options
+  default-language:
+    GHC2021
+
+  default-extensions:
+    ImportQualifiedPost
+    LambdaCase
+
+  ghc-options:
+    -O2
+    -Weverything
+    -Wno-all-missed-specialisations
+    -Wno-implicit-prelude
+    -Wno-missed-specialisations
+    -Wno-missing-import-lists
+    -Wno-missing-local-signatures
+    -Wno-missing-safe-haskell-mode
+    -Wno-safe
+    -Wno-type-defaults
+    -Wno-unsafe
+    -Wno-unused-packages
+
+  if impl(ghc >= 8.8)
+    ghc-options:
+      -Wno-missing-deriving-strategies
+
+  if impl(ghc >= 9.2)
+    ghc-options:
+      -Wno-missing-kind-signatures
+
+library
+  import: ghc-options
+  exposed-modules:
+    Data.Vector.Algorithms.FixedSort
+    Data.Vector.Algorithms.Heapsort
+    Data.Vector.Algorithms.Quicksort
+    Data.Vector.Algorithms.Quicksort.Fork2
+    Data.Vector.Algorithms.Quicksort.Median
+    Data.Vector.Algorithms.Quicksort.Parameterised
+  hs-source-dirs:
+    src
+  build-depends:
+    , base >= 4.15 && < 5
+    , primitive
+    , stm
+    , vector
+
+library vector-quicksort-predefined
+  import: ghc-options
+
+  exposed-modules:
+    Data.Vector.Algorithms.Quicksort.Predefined.AveragingMedian
+    Data.Vector.Algorithms.Quicksort.Predefined.Pair
+
+    Data.Vector.Algorithms.Quicksort.Predefined.BitonicIntST
+
+    Data.Vector.Algorithms.Quicksort.Predefined.PIntParallelMedian3IO
+    Data.Vector.Algorithms.Quicksort.Predefined.PIntParallelMedian3or5IO
+
+    Data.Vector.Algorithms.Quicksort.Predefined.PIntSequentialMedian3ST
+    Data.Vector.Algorithms.Quicksort.Predefined.PIntSequentialMedian3IO
+    Data.Vector.Algorithms.Quicksort.Predefined.PIntParallelStrategiesMedian3ST
+    Data.Vector.Algorithms.Quicksort.Predefined.PIntParallelStrategiesMedian3IO
+    Data.Vector.Algorithms.Quicksort.Predefined.PIntSequentialMedian3or5ST
+    Data.Vector.Algorithms.Quicksort.Predefined.PIntSequentialMedian3or5IO
+    Data.Vector.Algorithms.Quicksort.Predefined.PIntParallelStrategiesMedian3or5ST
+    Data.Vector.Algorithms.Quicksort.Predefined.PIntParallelStrategiesMedian3or5IO
+
+    Data.Vector.Algorithms.Quicksort.Predefined.PIntSequentialAveragingMedianST
+    Data.Vector.Algorithms.Quicksort.Predefined.UPairSequentialAveragingMedianST
+
+    Data.Vector.Algorithms.Quicksort.Predefined.VIntSequentialMedian3ST
+    Data.Vector.Algorithms.Quicksort.Predefined.VIntSequentialMedian3IO
+    Data.Vector.Algorithms.Quicksort.Predefined.VPairSequentialMedian3ST
+    Data.Vector.Algorithms.Quicksort.Predefined.VPairSequentialMedian3IO
+    Data.Vector.Algorithms.Quicksort.Predefined.VIntParallelStrategiesMedian3ST
+    Data.Vector.Algorithms.Quicksort.Predefined.VIntParallelStrategiesMedian3IO
+    Data.Vector.Algorithms.Quicksort.Predefined.VPairParallelStrategiesMedian3ST
+    Data.Vector.Algorithms.Quicksort.Predefined.VPairParallelStrategiesMedian3IO
+
+    Data.Vector.Algorithms.Quicksort.Predefined.VIntSequentialMedian3or5ST
+    Data.Vector.Algorithms.Quicksort.Predefined.VIntSequentialMedian3or5IO
+    Data.Vector.Algorithms.Quicksort.Predefined.VPairSequentialMedian3or5ST
+    Data.Vector.Algorithms.Quicksort.Predefined.VPairSequentialMedian3or5IO
+    Data.Vector.Algorithms.Quicksort.Predefined.VIntParallelStrategiesMedian3or5ST
+    Data.Vector.Algorithms.Quicksort.Predefined.VIntParallelStrategiesMedian3or5IO
+    Data.Vector.Algorithms.Quicksort.Predefined.VPairParallelStrategiesMedian3or5ST
+    Data.Vector.Algorithms.Quicksort.Predefined.VPairParallelStrategiesMedian3or5IO
+
+    Data.Vector.Algorithms.Quicksort.Predefined.UIntSequentialMedian3ST
+    Data.Vector.Algorithms.Quicksort.Predefined.UIntSequentialMedian3IO
+    Data.Vector.Algorithms.Quicksort.Predefined.UPairSequentialMedian3ST
+    Data.Vector.Algorithms.Quicksort.Predefined.UPairSequentialMedian3IO
+    Data.Vector.Algorithms.Quicksort.Predefined.UIntParallelStrategiesMedian3ST
+    Data.Vector.Algorithms.Quicksort.Predefined.UIntParallelStrategiesMedian3IO
+    Data.Vector.Algorithms.Quicksort.Predefined.UPairParallelStrategiesMedian3ST
+    Data.Vector.Algorithms.Quicksort.Predefined.UPairParallelStrategiesMedian3IO
+
+    Data.Vector.Algorithms.Quicksort.Predefined.UIntSequentialMedian3or5ST
+    Data.Vector.Algorithms.Quicksort.Predefined.UIntSequentialMedian3or5IO
+    Data.Vector.Algorithms.Quicksort.Predefined.UPairSequentialMedian3or5ST
+    Data.Vector.Algorithms.Quicksort.Predefined.UPairSequentialMedian3or5IO
+    Data.Vector.Algorithms.Quicksort.Predefined.UIntParallelStrategiesMedian3or5ST
+    Data.Vector.Algorithms.Quicksort.Predefined.UIntParallelStrategiesMedian3or5IO
+    Data.Vector.Algorithms.Quicksort.Predefined.UPairParallelStrategiesMedian3or5ST
+    Data.Vector.Algorithms.Quicksort.Predefined.UPairParallelStrategiesMedian3or5IO
+
+    Data.Vector.Algorithms.Quicksort.Predefined.VTupleSequentialMedian3ST
+    Data.Vector.Algorithms.Quicksort.Predefined.VTupleSequentialMedian3IO
+    Data.Vector.Algorithms.Quicksort.Predefined.VTupleParallelStrategiesMedian3ST
+    Data.Vector.Algorithms.Quicksort.Predefined.VTupleParallelStrategiesMedian3IO
+    Data.Vector.Algorithms.Quicksort.Predefined.VTupleSequentialMedian3or5ST
+    Data.Vector.Algorithms.Quicksort.Predefined.VTupleSequentialMedian3or5IO
+    Data.Vector.Algorithms.Quicksort.Predefined.VTupleParallelStrategiesMedian3or5ST
+    Data.Vector.Algorithms.Quicksort.Predefined.VTupleParallelStrategiesMedian3or5IO
+    Data.Vector.Algorithms.Quicksort.Predefined.UTupleSequentialMedian3ST
+    Data.Vector.Algorithms.Quicksort.Predefined.UTupleSequentialMedian3IO
+    Data.Vector.Algorithms.Quicksort.Predefined.UTupleParallelStrategiesMedian3ST
+    Data.Vector.Algorithms.Quicksort.Predefined.UTupleParallelStrategiesMedian3IO
+    Data.Vector.Algorithms.Quicksort.Predefined.UTupleSequentialMedian3or5ST
+    Data.Vector.Algorithms.Quicksort.Predefined.UTupleSequentialMedian3or5IO
+    Data.Vector.Algorithms.Quicksort.Predefined.UTupleParallelStrategiesMedian3or5ST
+    Data.Vector.Algorithms.Quicksort.Predefined.UTupleParallelStrategiesMedian3or5IO
+
+  hs-source-dirs:
+    src-predefined
+
+  build-depends:
+    , base >= 4.14
+    , parallel
+    , primitive
+    , stm
+    , vector >= 0.13
+    , vector-quicksort
+
+test-suite test
+  import: ghc-options
+  type:
+    exitcode-stdio-1.0
+  main-is:
+    test/TestMain.hs
+  other-modules:
+    Data.Vector.Algorithms.Quicksort.Tests
+  hs-source-dirs:
+    .
+    test
+  build-depends:
+    , QuickCheck
+    , base >= 4.14
+    , containers
+    , tasty
+    , tasty-quickcheck
+    , vector
+    , vector-quicksort-predefined
+  ghc-options:
+    -rtsopts
+    -threaded
+    "-with-rtsopts=-N -A16m -n1m -qg -qb"
+    -main-is TestMain
+
+library vector-quicksort-cpp
+  default-language:
+    GHC2021
+  include-dirs:
+    cbits
+  cxx-sources:
+    cbits/sort.cpp
+  cxx-options:
+    -std=c++17
+  -- Just like in the ‘text’ package, less critical for us since this
+  -- is a library for testing and benchmarking only.
+  if impl(ghc >= 9.4)
+    build-depends: system-cxx-std-lib == 1.0
+  elif os(darwin) || os(freebsd)
+    extra-libraries: c++
+  elif os(openbsd)
+    extra-libraries: c++ c++abi pthread
+  elif os(windows)
+    -- GHC's Windows toolchain is based on clang/libc++ in GHC 9.4 and later
+    if impl(ghc < 9.3)
+      extra-libraries: stdc++
+    else
+      extra-libraries: c++ c++abi
+  elif os(linux)
+    extra-libraries: stdc++
+  else
+    -- This is supposed to be under arch(wasm32), but we can't do that yet
+    -- since cabal check would fail with unrecognized arch, see
+    -- https://github.com/haskell/cabal/pull/8096 for the fix.
+    -- TODO: when a new cabal release is out with that fix, bump cabal in CI
+    -- and add proper arch(wasm32) declaration here.
+    cpp-options: -DSIMDUTF_NO_THREADS
+    cxx-options: -fno-exceptions
+    extra-libraries: c++ c++abi
+
+benchmark bench
+  import: ghc-options
+  type:
+    exitcode-stdio-1.0
+  main-is:
+    BenchMain.hs
+  other-modules:
+    ForeignSorting
+  hs-source-dirs:
+    bench
+  build-depends:
+    , atomic-counter
+    , base >= 4.14
+    , bytestring
+    , deepseq
+    , primitive
+    , random
+    , stm
+    , tasty
+    , tasty-bench >= 0.3.2
+    , text
+    , text-builder-linear
+    , vector
+    , vector-algorithms
+    , vector-quicksort
+    , vector-quicksort-cpp
+    , vector-quicksort-predefined
+  ghc-options:
+    -fno-spec-constr
+    -rtsopts
+    -threaded
+    "-with-rtsopts=-N -A16m -n1m -qg -qb"
+    -main-is BenchmarkMain