cabal-version: 2.2
name: map-reduce-folds
version: 0.1.0.0
build-type: Simple
synopsis: foldl wrappers for map-reduce
description: map-reduce-folds simplifies the building of folds to do map-reduce style computations on collections. It breaks the map/reduce into an unpacking step where items may be filtered, transformed or "melted" (made into several new items), an assign step where the unpacked items are assigned keys, a grouping step where the assigned items are grouped by key and then a reduce step which is applied to each grouped subset. Tools are provided to simplify building the individual steps and then "engines" are provided for combining them into efficient folds returning an assortment of containers. The various pieces are replicated for effectful (monadic) steps producing effectful (monadic) folds.
bug-reports: https://github.com/adamConnerSax/map-reduce-folds/issues
license: BSD-3-Clause
license-file: LICENSE
author: Adam Conner-Sax
maintainer: adam_conner_sax@yahoo.com
copyright: 2019 Adam Conner-Sax
category: Control
extra-source-files: ChangeLog.md
tested-with: GHC ==8.6.4 || ==8.6.2
flag dump-core
description: Dump HTML for the core generated by GHC during compilation
default: False
source-repository head
Type: git
Location: https://github.com/adamConnerSax/map-reduce-folds
common deps
build-depends: base >= 4.12.0 && < 4.13,
containers >= 0.6.0 && < 0.7,
foldl >= 1.4.5 && < 1.5,
profunctors >= 5.3 && < 5.4,
text >= 1.2.3 && < 1.3,
unordered-containers >= 0.2.10 && < 0.3
library
import: deps
if flag(dump-core)
build-depends: dump-core
ghc-options: -fforce-recomp -fplugin=DumpCore -fplugin-opt DumpCore:core-html
ghc-options: -Wall -fspecialise-aggressively -funbox-strict-fields -fexpose-all-unfoldings
exposed-modules: Control.MapReduce
, Control.MapReduce.Core
, Control.MapReduce.Simple
, Control.MapReduce.Engines
, Control.MapReduce.Engines.Streaming
, Control.MapReduce.Engines.Streamly
, Control.MapReduce.Engines.Vector
, Control.MapReduce.Engines.List
, Control.MapReduce.Engines.ParallelList
build-depends:
discrimination >= 0.3 && < 0.4,
hashable >= 1.2.7 && < 1.3,
hashtables >= 1.2.0.0 && < 1.3.0.0,
vector >= 0.12.0 && < 0.13,
parallel >= 3.2.2 && < 3.3,
split >= 0.2.3 && < 0.3,
streaming >= 0.2.2 && < 0.3,
streamly >= 0.6.1 && < 0.7
hs-source-dirs: src
default-language: Haskell2010
test-suite map-reduce-folds-test
type: exitcode-stdio-1.0
main-is: TestAll.hs
other-modules: Test1
hs-source-dirs: test
ghc-options:
build-depends:
base
, hedgehog >= 0.6.0 && < 0.7
, map-reduce-folds
, containers
, foldl
default-language: Haskell2010
benchmark bench-map-reduce
import: deps
if flag(dump-core)
build-depends: dump-core
ghc-options: -fforce-recomp -fplugin=DumpCore -fplugin-opt DumpCore:core-html
type: exitcode-stdio-1.0
hs-source-dirs: bench
other-modules:
ghc-options: -O3 -fspecialise-aggressively -funbox-strict-fields -fexpose-all-unfoldings -fforce-recomp
-- -threaded "-with-rtsopts=-N"
main-is: MapReduce.hs
build-depends: map-reduce-folds >= 0.1.0.0,
criterion ,
deepseq ,
random
default-language: Haskell2010
executable listStats
import: deps
main-is: ListStats.hs
hs-source-dirs: examples
ghc-options: -Wall
build-depends: map-reduce-folds -any
default-language: Haskell2010
executable readmeExample
import: deps
main-is: readmeExample.hs
hs-source-dirs: examples
ghc-options: -Wall
build-depends: map-reduce-folds -any
default-language: Haskell2010