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