streamly/streamly.cabal
Harendra Kumar 6cfe06b357 Refactor, document, fixup Data.Stream module
Minimize the difference with IsStream modules and fix the differences

Fix all doctests, remove stale since notations

Remove redundant functions from Stream/Common module

Remove the "map" operation, we should use "fmap" instead.
2022-06-23 16:50:16 +05:30

724 lines
28 KiB
Plaintext

cabal-version: 2.2
name: streamly
version: 0.9.0
synopsis: Dataflow programming and declarative concurrency
description:
Browse the documentation at https://streamly.composewell.com.
.
Streamly is a streaming framework to build reliable and scalable
software systems from modular building blocks using dataflow
programming and declarative concurrency. Stream fusion optimizations
in streamly result in high-performance, modular combinatorial
programming.
.
Performance with simplicity:
.
* Performance on par with C (<https://github.com/composewell/streaming-benchmarks Benchmarks>)
* API close to standard Haskell lists (<https://github.com/composewell/streamly-examples Examples>)
* Declarative concurrency with automatic scaling
* Filesystem, fsnotify, network, and Unicode support included
* More functionality provided via many ecosystem packages
.
Unified and powerful abstractions:
.
* Unifies unfolds, arrays, folds, and parsers with streaming
* Unifies @Data.List@, @list-t@, and @logict@ with streaming
* Unifies concurrency with standard streaming abstractions
* Provides time-domain combinators for reactive programming
* Interworks with bytestring and streaming libraries
homepage: https://streamly.composewell.com
bug-reports: https://github.com/composewell/streamly/issues
license: BSD-3-Clause
license-file: LICENSE
tested-with: GHC==8.4.4
, GHC==8.6.5
, GHC==8.8.4
, GHC==8.10.7
, GHC==9.0.2
, GHC==9.2.2
author: Composewell Technologies
maintainer: streamly@composewell.com
copyright: 2017 Composewell Technologies
category:
Streamly, Concurrency, Streaming, Dataflow, Pipes, Reactivity, List,
Logic, Non-determinism, Parsing, Array, Time, Unicode, Filesystem,
Network
stability: Stable
build-type: Configure
extra-source-files:
benchmark/*.hs
benchmark/bench-runner/Main.hs
benchmark/bench-runner/bench-runner.cabal
benchmark/Streamly/Benchmark/Data/*.hs
benchmark/Streamly/Benchmark/Data/Array/Common.hs
benchmark/Streamly/Benchmark/Data/Array/CommonImports.hs
benchmark/Streamly/Benchmark/Data/Array/SmallArray.hs
benchmark/Streamly/Benchmark/Data/Array/Foreign.hs
benchmark/Streamly/Benchmark/Data/Array/Foreign/Mut.hs
benchmark/Streamly/Benchmark/Data/Array/Prim.hs
benchmark/Streamly/Benchmark/Data/Array/Prim/Pinned.hs
benchmark/Streamly/Benchmark/Data/Array/Stream/Foreign.hs
benchmark/Streamly/Benchmark/Data/Fold/Window.hs
benchmark/Streamly/Benchmark/Data/Parser/*.hs
benchmark/Streamly/Benchmark/Data/Stream/*.hs
benchmark/Streamly/Benchmark/FileSystem/*.hs
benchmark/Streamly/Benchmark/FileSystem/Handle/*.hs
benchmark/Streamly/Benchmark/Prelude/*.hs
benchmark/Streamly/Benchmark/Prelude/Serial/*.hs
benchmark/Streamly/Benchmark/Unicode/*.hs
benchmark/lib/Streamly/Benchmark/*.hs
benchmark/lib/Streamly/Benchmark/Common/*.hs
benchmark/streamly-benchmarks.cabal
bin/mk-hscope.sh
bin/mk-tags.sh
configure
configure.ac
docs/*.hs
docs/streamly-docs.cabal
targets/streamly-targets.cabal
targets/Targets.hs
test/test-runner/Main.hs
test/test-runner/test-runner.cabal
-- This is duplicated
src/Streamly/Internal/Data/Stream/Instances.hs
src/Streamly/Internal/Data/Array/ArrayMacros.h
src/Streamly/Internal/Data/Array/PrimInclude.hs
src/Streamly/Internal/Data/Array/Prim/TypesInclude.hs
src/Streamly/Internal/Data/Array/Prim/MutTypesInclude.hs
src/Streamly/Internal/FileSystem/Event/Darwin.h
src/config.h.in
src/inline.hs
test/Streamly/Test/Data/*.hs
test/Streamly/Test/Data/Array/CommonImports.hs
test/Streamly/Test/Data/Array/Common.hs
test/Streamly/Test/Data/Array/Prim.hs
test/Streamly/Test/Data/Array/Prim/Pinned.hs
test/Streamly/Test/Data/Array/Foreign.hs
test/Streamly/Test/Data/Array/Stream/Foreign.hs
test/Streamly/Test/Data/Parser/ParserD.hs
test/Streamly/Test/FileSystem/Event.hs
test/Streamly/Test/FileSystem/Event/Common.hs
test/Streamly/Test/FileSystem/Event/Darwin.hs
test/Streamly/Test/FileSystem/Event/Windows.hs
test/Streamly/Test/FileSystem/Event/Linux.hs
test/Streamly/Test/FileSystem/Handle.hs
test/Streamly/Test/Network/Socket.hs
test/Streamly/Test/Network/Inet/TCP.hs
test/Streamly/Test/Prelude.hs
test/Streamly/Test/Prelude/*.hs
test/Streamly/Test/Unicode/*.hs
test/Streamly/Test/Data/Fold/*.hs
test/lib/Streamly/Test/Common.hs
test/lib/Streamly/Test/Prelude/Common.hs
test/streamly-tests.cabal
test/version-bounds.hs
test/Streamly/Test/Unicode/ucd/NormalizationTest.txt
test/Streamly/Test/Unicode/extra/NormalizationTest.txt
benchmark/Streamly/Benchmark/Unicode/data/AllChars.txt
benchmark/Streamly/Benchmark/Unicode/data/Devanagari.txt
benchmark/Streamly/Benchmark/Unicode/data/Japanese.txt
benchmark/Streamly/Benchmark/Unicode/data/Vietnamese.txt
benchmark/Streamly/Benchmark/Unicode/data/Deutsch.txt
benchmark/Streamly/Benchmark/Unicode/data/English.txt
benchmark/Streamly/Benchmark/Unicode/data/Korean.txt
-- Include streamly-core when packaging
-- This is temporary as we will soon break this package out
core/configure
core/configure.ac
core/src/Streamly/Internal/Data/Stream/Instances.hs
core/src/Streamly/Internal/Data/Array/ArrayMacros.h
core/src/inline.hs
core/src/Streamly/Internal/Data/Time/Clock/config-clock.h
core/src/config.h.in
core/src/Streamly/Internal/BaseCompat.hs
core/src/Streamly/Internal/Control/Exception.hs
core/src/Streamly/Internal/Control/Monad.hs
core/src/Streamly/Internal/Control/ForkIO.hs
core/src/Streamly/Internal/Data/Cont.hs
core/src/Streamly/Internal/Foreign/Malloc.hs
core/src/Streamly/Internal/System/IO.hs
core/src/Streamly/Internal/Data/IsMap.hs
core/src/Streamly/Internal/Data/Tuple/Strict.hs
core/src/Streamly/Internal/Data/Maybe/Strict.hs
core/src/Streamly/Internal/Data/Either/Strict.hs
core/src/Streamly/Internal/Control/Concurrent.hs
core/src/Streamly/Internal/Control/ForkLifted.hs
core/src/Streamly/Internal/Data/IOFinalizer.hs
core/src/Streamly/Internal/Data/Time/TimeSpec.hsc
core/src/Streamly/Internal/Data/Time/Units.hs
core/src/Streamly/Internal/Data/Time/Clock/Type.hsc
core/src/Streamly/Internal/Data/Time/Clock.hs
core/src/Streamly/Internal/Data/SVar/Type.hs
core/src/Streamly/Internal/Data/Stream/StreamK/Type.hs
core/src/Streamly/Internal/Data/Fold/Step.hs
core/src/Streamly/Internal/Data/Refold/Type.hs
core/src/Streamly/Internal/Data/Fold/Type.hs
core/src/Streamly/Internal/Data/Stream/StreamD/Step.hs
core/src/Streamly/Internal/Data/Stream/StreamD/Type.hs
core/src/Streamly/Internal/Data/Stream/StreamDK/Type.hs
core/src/Streamly/Internal/Data/Unfold/Type.hs
core/src/Streamly/Internal/Data/Producer/Type.hs
core/src/Streamly/Internal/Data/Producer.hs
core/src/Streamly/Internal/Data/Producer/Source.hs
core/src/Streamly/Internal/Data/Parser/ParserK/Type.hs
core/src/Streamly/Internal/Data/Parser/ParserD/Type.hs
core/src/Streamly/Internal/Data/Pipe/Type.hs
core/src/Streamly/Internal/Data/Unboxed.hs
core/src/Streamly/Internal/Data/IORef/Prim.hs
core/src/Streamly/Internal/Data/Array/Foreign/Mut/Type.hs
core/src/Streamly/Internal/Data/Array/Foreign/Mut.hs
core/src/Streamly/Internal/Data/Array/Foreign/Type.hs
core/src/Streamly/Internal/Data/Array/Mut/Type.hs
core/src/Streamly/Internal/Data/Stream/StreamD/Generate.hs
core/src/Streamly/Internal/Data/Stream/StreamD/Eliminate.hs
core/src/Streamly/Internal/Data/Stream/StreamD/Nesting.hs
core/src/Streamly/Internal/Data/Stream/StreamD/Transform.hs
core/src/Streamly/Internal/Data/Stream/StreamD/Exception.hs
core/src/Streamly/Internal/Data/Stream/StreamD/Lift.hs
core/src/Streamly/Internal/Data/Stream/StreamD.hs
core/src/Streamly/Internal/Data/Stream/StreamDK.hs
core/src/Streamly/Internal/Data/Stream/Common.hs
core/src/Streamly/Internal/Data/Parser/ParserD/Tee.hs
core/src/Streamly/Internal/Data/Parser/ParserD.hs
core/src/Streamly/Internal/Data/Unfold.hs
core/src/Streamly/Internal/Data/Unfold/Enumeration.hs
core/src/Streamly/Internal/Data/Fold/Tee.hs
core/src/Streamly/Internal/Data/Fold.hs
core/src/Streamly/Internal/Data/Parser.hs
core/src/Streamly/Internal/Data/Pipe.hs
core/src/Streamly/Internal/Data/Stream/Serial.hs
core/src/Streamly/Internal/Data/Stream.hs
core/src/Streamly/Internal/Data/Stream/Bottom.hs
core/src/Streamly/Internal/Data/Stream/Eliminate.hs
core/src/Streamly/Internal/Data/Stream/Exception.hs
core/src/Streamly/Internal/Data/Stream/Expand.hs
core/src/Streamly/Internal/Data/Stream/Generate.hs
core/src/Streamly/Internal/Data/Stream/Lift.hs
core/src/Streamly/Internal/Data/Stream/Reduce.hs
core/src/Streamly/Internal/Data/Stream/Transform.hs
core/src/Streamly/Internal/Data/Stream/Type.hs
core/src/Streamly/Internal/Data/Stream/WSerial.hs
core/src/Streamly/Internal/Data/Stream/Zip.hs
core/src/Streamly/Internal/Data/List.hs
core/src/Streamly/Internal/Data/Array.hs
core/src/Streamly/Internal/Data/Array/Foreign.hs
core/src/Streamly/Internal/Data/Array/Stream/Mut/Foreign.hs
core/src/Streamly/Internal/Data/Array/Stream/Fold/Foreign.hs
core/src/Streamly/Internal/Data/Ring/Foreign.hs
core/src/Streamly/Internal/Data/Ring.hs
core/src/Streamly/Internal/Data/Stream/StreamK.hs
core/src/Streamly/Data/Fold.hs
core/src/Streamly/Data/Fold/Tee.hs
core/src/Streamly/Internal/Data/Fold/Window.hs
core/src/Streamly/Data/Array/Foreign.hs
core/src/Streamly/Internal/Data/Time/Clock/Darwin.c
core/src/Streamly/Internal/Data/Time/Clock/Windows.c
core/streamly-core.cabal
core/jsbits/clock.js
core/Setup.hs
extra-doc-files:
CONTRIBUTING.md
CHANGELOG.md
README.md
benchmark/README.md
docs/Developer/Benchmarks.md
docs/Developer/*.png
docs/Developer/*.md
docs/Developer/*.rst
docs/Developer/*.png
docs/Developer/*.md
docs/Developer/*.rst
docs/Developer/*.link
docs/User/*.md
docs/User/Tutorials/*.md
docs/User/Tutorials/*.link
docs/User/Tutorials/*.hs
docs/User/HowTo/*.md
docs/User/HowTo/*.link
docs/User/HowTo/*.svg
docs/User/Explanatory/*.md
docs/User/Explanatory/streaming-pradigms.rst
docs/User/ProjectRelated/*.md
docs/User/ProjectRelated/*.link
docs/User/ProjectRelated/API-changelog.txt
test/README.md
docs/Developer/Tests.md
extra-tmp-files:
config.log
config.status
autom4te.cache
src/config.h
source-repository head
type: git
location: https://github.com/composewell/streamly
flag fusion-plugin
description: Use fusion plugin for benchmarks and executables
manual: True
default: False
flag inspection
description: Enable inspection testing
manual: True
default: False
flag debug
description: Debug build with asserts enabled
manual: True
default: False
flag dev
description: Development build
manual: True
default: False
flag has-llvm
description: Use llvm backend for code generation
manual: True
default: False
flag streamk
description: Use CPS style streams when possible
manual: True
default: False
flag use-c-malloc
description: Use C malloc instead of GHC malloc
manual: True
default: False
flag opt
description: off=GHC default, on=-O2
manual: True
default: True
flag limit-build-mem
description: Limits memory when building
manual: True
default: False
flag use-storable
description: Use Storable for unboxed arrays
manual: True
default: False
-------------------------------------------------------------------------------
-- Common stanzas
-------------------------------------------------------------------------------
common compile-options
default-language: Haskell2010
if os(darwin)
cpp-options: -DCABAL_OS_DARWIN
if os(linux)
cpp-options: -DCABAL_OS_LINUX
if os(windows)
cpp-options: -DCABAL_OS_WINDOWS
if flag(streamk)
cpp-options: -DUSE_STREAMK_ONLY
if flag(dev)
cpp-options: -DDEVBUILD
if flag(inspection)
cpp-options: -DINSPECTION
if flag(use-c-malloc)
cpp-options: -DUSE_C_MALLOC
if flag(use-storable)
cpp-options: -DUSE_STORABLE
ghc-options: -Wall
-Wcompat
-Wunrecognised-warning-flags
-Widentities
-Wincomplete-record-updates
-Wincomplete-uni-patterns
-Wredundant-constraints
-Wnoncanonical-monad-instances
-Wmissing-export-lists
-Rghc-timing
if flag(has-llvm)
ghc-options: -fllvm
if flag(dev)
ghc-options: -Wmissed-specialisations
-Wall-missed-specialisations
if flag(limit-build-mem)
ghc-options: +RTS -M1000M -RTS
common default-extensions
default-extensions:
BangPatterns
CApiFFI
CPP
ConstraintKinds
DeriveDataTypeable
DeriveGeneric
DeriveTraversable
ExistentialQuantification
FlexibleContexts
FlexibleInstances
GeneralizedNewtypeDeriving
InstanceSigs
KindSignatures
LambdaCase
MagicHash
MultiParamTypeClasses
PatternSynonyms
RankNTypes
RecordWildCards
ScopedTypeVariables
TupleSections
TypeApplications
TypeFamilies
ViewPatterns
-- MonoLocalBinds, enabled by TypeFamilies, causes performance
-- regressions. Disable it. This must come after TypeFamilies,
-- otherwise TypeFamilies will enable it again.
NoMonoLocalBinds
-- UndecidableInstances -- Does not show any perf impact
-- UnboxedTuples -- interferes with (#.)
common optimization-options
if flag(opt)
ghc-options: -O2
-fdicts-strict
-fspec-constr-recursive=16
-fmax-worker-args=16
-- For this to be effective it must come after the -O2 option
if flag(dev) || flag(debug) || !flag(opt)
ghc-options: -fno-ignore-asserts
common threading-options
ghc-options: -threaded
-with-rtsopts=-N
-- We need optimization options here to optimize internal (non-inlined)
-- versions of functions. Also, we have some benchmarking inspection tests
-- part of the library when built with --benchmarks flag. Thos tests fail
-- if we do not use optimization options here. It was observed that due to
-- -O2 here some concurrent/nested benchmarks improved and others regressed.
-- We can investigate a bit more here why the regression occurred.
common lib-options
import: compile-options, optimization-options, default-extensions
-------------------------------------------------------------------------------
-- Library
-------------------------------------------------------------------------------
library
import: lib-options
if impl(ghc >= 8.6)
default-extensions: QuantifiedConstraints
include-dirs:
src
, src/Streamly/Internal/Data/Stream
, src/Streamly/Internal/Data/Array
hs-source-dirs: src
exposed-modules:
-- Internal modules, listed roughly in bottom up
-- dependency order To view dependency graph:
-- graphmod | dot -Tps > deps.ps
-- XXX To be moved to streamly-core
Streamly.Data.Unfold
-- XXX To be removed or put under dev flag
, Streamly.Internal.Data.Array.Prim.Mut.Type
, Streamly.Internal.Data.Array.Prim.Type
, Streamly.Internal.Data.Array.Prim.Pinned.Mut.Type
, Streamly.Internal.Data.Array.Prim.Pinned.Type
, Streamly.Internal.Data.SmallArray.Type
, Streamly.Internal.Data.Array.Prim
, Streamly.Internal.Data.Array.Prim.Pinned
, Streamly.Internal.Data.SmallArray
-- streamly-concurrent
, Streamly.Internal.Data.Atomics
, Streamly.Internal.Data.SVar.Worker
, Streamly.Internal.Data.SVar.Dispatch
, Streamly.Internal.Data.SVar.Pull
, Streamly.Internal.Data.SVar
, Streamly.Internal.Data.Unfold.SVar
, Streamly.Internal.Data.Fold.SVar
, Streamly.Internal.Data.Fold.Async
, Streamly.Internal.Data.Stream.SVar.Generate
, Streamly.Internal.Data.Stream.SVar.Eliminate
, Streamly.Internal.Data.Stream.Async
, Streamly.Internal.Data.Stream.Parallel
, Streamly.Internal.Data.Stream.Ahead
, Streamly.Internal.Data.Stream.ZipAsync
, Streamly.Internal.Data.Stream.IsStream.Type
, Streamly.Internal.Data.Stream.IsStream.Combinators
, Streamly.Internal.Data.Stream.IsStream.Common
, Streamly.Internal.Data.Stream.IsStream.Enumeration
, Streamly.Internal.Data.Stream.IsStream.Generate
, Streamly.Internal.Data.Stream.IsStream.Eliminate
, Streamly.Internal.Data.Stream.IsStream.Transform
, Streamly.Internal.Data.Stream.IsStream.Expand
, Streamly.Internal.Data.Stream.IsStream.Reduce
, Streamly.Internal.Data.Stream.IsStream.Exception
, Streamly.Internal.Data.Stream.IsStream.Lift
, Streamly.Internal.Data.Stream.IsStream.Top
, Streamly.Internal.Data.Stream.IsStream
, Streamly.Internal.Data.Array.Stream.Foreign
-- streamly-serde
, Streamly.Internal.Data.Binary.Decode
-- streamly-unicode
, Streamly.Internal.Unicode.Stream
, Streamly.Internal.Unicode.String
, Streamly.Internal.Unicode.Utf8
, Streamly.Internal.Unicode.Char
, Streamly.Internal.Unicode.Char.Parser
, Streamly.Internal.Unicode.Array.Char
, Streamly.Internal.Unicode.Array.Prim.Pinned
-- streamly-filesystem
, Streamly.Internal.System.IOVec.Type
, Streamly.Internal.System.IOVec
, Streamly.Internal.FileSystem.Handle
, Streamly.Internal.FileSystem.Dir
, Streamly.Internal.FileSystem.File
, Streamly.Internal.FileSystem.FDIO
, Streamly.Internal.FileSystem.FD
-- streamly-console
, Streamly.Internal.Console.Stdio
-- streamly-network
, Streamly.Internal.Network.Socket
, Streamly.Internal.Network.Inet.TCP
-- Exposed modules
, Streamly.Prelude
-- Text Processing
, Streamly.Unicode.Stream
-- Filesystem/IO
, Streamly.FileSystem.Handle
, Streamly.Console.Stdio
-- Network/IO
, Streamly.Network.Socket
, Streamly.Network.Inet.TCP
-- Deprecated
, Streamly
, Streamly.Data.Unicode.Stream
, Streamly.Memory.Array
reexported-modules:
-- Re-exported modules, listed in the order described in
-- streamly-core.
-- streamly-base
Streamly.Internal.BaseCompat
, Streamly.Internal.Control.Exception
, Streamly.Internal.Control.Monad
, Streamly.Internal.Control.ForkIO
, Streamly.Internal.Data.Cont
, Streamly.Internal.Foreign.Malloc
, Streamly.Internal.System.IO
-- streamly-strict-data
, Streamly.Internal.Data.Tuple.Strict
, Streamly.Internal.Data.Maybe.Strict
, Streamly.Internal.Data.Either.Strict
-- XXX Depends on monad-control or unliftio-core
, Streamly.Internal.Control.Concurrent
, Streamly.Internal.Control.ForkLifted
, Streamly.Internal.Data.IOFinalizer
-- streamly-time
, Streamly.Internal.Data.Time.TimeSpec
, Streamly.Internal.Data.Time.Units
, Streamly.Internal.Data.Time.Clock.Type
, Streamly.Internal.Data.Time.Clock
-- streamly-core-stream-types
, Streamly.Internal.Data.SVar.Type
, Streamly.Internal.Data.Stream.StreamK.Type
, Streamly.Internal.Data.Fold.Step
, Streamly.Internal.Data.Refold.Type
, Streamly.Internal.Data.Fold.Type
, Streamly.Internal.Data.Stream.StreamD.Step
, Streamly.Internal.Data.Stream.StreamD.Type
, Streamly.Internal.Data.Stream.StreamDK.Type
, Streamly.Internal.Data.Unfold.Type
, Streamly.Internal.Data.Producer.Type
, Streamly.Internal.Data.Producer
, Streamly.Internal.Data.Producer.Source
, Streamly.Internal.Data.Parser.ParserK.Type
, Streamly.Internal.Data.Parser.ParserD.Type
, Streamly.Internal.Data.Pipe.Type
-- streamly-core-array-types
, Streamly.Internal.Data.Unboxed
-- Unboxed IORef
-- XXX Depends on primitive
, Streamly.Internal.Data.IORef.Prim
-- May depend on streamly-core-stream
, Streamly.Internal.Data.Array.Foreign.Mut.Type
, Streamly.Internal.Data.Array.Foreign.Mut
, Streamly.Internal.Data.Array.Foreign.Type
, Streamly.Internal.Data.Array.Mut.Type
-- streamly-core-streams
-- StreamD depends on streamly-array-types
, Streamly.Internal.Data.Stream.StreamD.Generate
, Streamly.Internal.Data.Stream.StreamD.Eliminate
, Streamly.Internal.Data.Stream.StreamD.Nesting
, Streamly.Internal.Data.Stream.StreamD.Transform
, Streamly.Internal.Data.Stream.StreamD.Exception
, Streamly.Internal.Data.Stream.StreamD.Lift
, Streamly.Internal.Data.Stream.StreamD
, Streamly.Internal.Data.Stream.StreamDK
, Streamly.Internal.Data.Stream.Common
, Streamly.Internal.Data.Parser.ParserD.Tee
, Streamly.Internal.Data.Parser.ParserD
-- streamly-core-data
, Streamly.Internal.Data.Unfold
, Streamly.Internal.Data.Unfold.Enumeration
, Streamly.Internal.Data.Fold.Tee
, Streamly.Internal.Data.Fold
, Streamly.Internal.Data.Fold.Window
, Streamly.Internal.Data.Parser
, Streamly.Internal.Data.Pipe
, Streamly.Internal.Data.Stream.Type
, Streamly.Internal.Data.Stream.Bottom
, Streamly.Internal.Data.Stream.Generate
, Streamly.Internal.Data.Stream.Eliminate
, Streamly.Internal.Data.Stream.Expand
, Streamly.Internal.Data.Stream.Reduce
, Streamly.Internal.Data.Stream.Transform
, Streamly.Internal.Data.Stream.Exception
, Streamly.Internal.Data.Stream.Lift
, Streamly.Internal.Data.Stream
, Streamly.Internal.Data.Stream.Serial
, Streamly.Internal.Data.Stream.Zip
, Streamly.Internal.Data.List
-- streamly-core-data-arrays
-- XXX Depends on primitive
, Streamly.Internal.Data.Array
, Streamly.Internal.Data.Array.Foreign
, Streamly.Internal.Data.Array.Stream.Mut.Foreign
, Streamly.Internal.Data.Array.Stream.Fold.Foreign
-- Ring Arrays
, Streamly.Internal.Data.Ring.Foreign
-- XXX Depends on primitive
, Streamly.Internal.Data.Ring
-- Only used for benchmarks
, Streamly.Internal.Data.Stream.StreamK
-- streamly-core exposed modules
, Streamly.Data.Fold
, Streamly.Data.Fold.Tee
, Streamly.Data.Array.Foreign
other-modules:
Streamly.Data.Array
, Streamly.Data.Prim.Array
, Streamly.Data.SmallArray
if os(windows)
exposed-modules: Streamly.Internal.FileSystem.Event.Windows
if os(darwin)
include-dirs: src/Streamly/Internal
c-sources: src/Streamly/Internal/FileSystem/Event/Darwin.m
exposed-modules: Streamly.Internal.FileSystem.Event.Darwin
if os(linux)
exposed-modules: Streamly.Internal.FileSystem.Event.Linux
if os(linux) || os(darwin) || os(windows)
exposed-modules: Streamly.Internal.FileSystem.Event
build-depends:
-- Core libraries shipped with ghc, the min and max
-- constraints of these libraries should match with
-- the GHC versions we support. This is to make sure that
-- packages depending on the "ghc" package (packages
-- depending on doctest is a common example) can
-- depend on streamly.
base >= 4.9 && < 4.17
, containers >= 0.5 && < 0.7
, deepseq >= 1.4.1 && < 1.5
, directory >= 1.2.2 && < 1.4
, exceptions >= 0.8 && < 0.11
, ghc-prim >= 0.2 && < 0.9
, mtl >= 2.2 && < 2.3
, transformers >= 0.4 && < 0.7
, filepath >= 1.2.0.0 && < 1.5
, template-haskell >= 2.13 && < 2.19
-- The core streamly package
, streamly-core == 0.1.0
, fusion-plugin-types >= 0.1 && < 0.2
-- XXX to be removed
, transformers-base >= 0.4 && < 0.5
, primitive >= 0.5.4 && < 0.8
, heaps >= 0.3 && < 0.5
-- concurrency
, atomic-primops >= 0.8 && < 0.9
, lockfree-queue >= 0.2.3 && < 0.3
, unicode-data >= 0.1 && < 0.4
-- Network
, network >= 2.6 && < 3.2
if os(windows)
build-depends: Win32 >= 2.6 && < 2.13
if os(darwin)
frameworks: Cocoa
if flag(inspection)
build-depends: template-haskell >= 2.14 && < 2.17
, inspection-testing >= 0.4 && < 0.5
-- Array uses a Storable constraint in dev build making several inspection
-- tests fail
if flag(dev) && flag(inspection)
build-depends: inspection-and-dev-flags-cannot-be-used-together