mirror of
https://github.com/composewell/streamly.git
synced 2024-10-26 19:50:19 +03:00
603 lines
23 KiB
Plaintext
603 lines
23 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.6.5
|
|
, GHC==8.8.4
|
|
, GHC==8.10.7
|
|
, GHC==9.0.2
|
|
, GHC==9.2.4
|
|
, GHC==9.4.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/Unboxed.hs
|
|
benchmark/Streamly/Benchmark/Data/Ring/Unboxed.hs
|
|
benchmark/Streamly/Benchmark/Data/Array/Unboxed/Mut.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/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/FileSystem/Event/Darwin.h
|
|
src/assert.hs
|
|
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/Unboxed.hs
|
|
test/Streamly/Test/Data/Array/Unboxed/Mut.hs
|
|
test/Streamly/Test/Data/Ring/Unboxed.hs
|
|
test/Streamly/Test/Data/Array/Stream/Foreign.hs
|
|
test/Streamly/Test/Data/Parser/ParserD.hs
|
|
test/Streamly/Test/Data/Stream/Async.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/assert.hs
|
|
core/src/config.h.in
|
|
core/src/inline.hs
|
|
core/src/Streamly/Internal/Data/Array/ArrayMacros.h
|
|
core/src/Streamly/Internal/Data/Time/Clock/config-clock.h
|
|
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/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/Unboxed.hs
|
|
core/src/Streamly/Internal/Data/Array/Unboxed/Mut/Type.hs
|
|
core/src/Streamly/Internal/Data/Array/Unboxed/Mut.hs
|
|
core/src/Streamly/Internal/Data/Array/Unboxed/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.hs
|
|
core/src/Streamly/Internal/Data/Stream/Bottom.hs
|
|
core/src/Streamly/Internal/Data/Stream/Eliminate.hs
|
|
core/src/Streamly/Internal/Data/Stream/Enumerate.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/Top.hs
|
|
core/src/Streamly/Internal/Data/Stream/Transform.hs
|
|
core/src/Streamly/Internal/Data/Stream/Type.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/Unboxed.hs
|
|
core/src/Streamly/Internal/Data/Array/Stream/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/Stream.hs
|
|
core/src/Streamly/Data/Fold.hs
|
|
core/src/Streamly/Data/Fold/Tee.hs
|
|
core/src/Streamly/Data/Parser.hs
|
|
core/src/Streamly/Data/Unfold.hs
|
|
core/src/Streamly/Internal/Data/Fold/Window.hs
|
|
core/src/Streamly/Data/Unbox.hs
|
|
core/src/Streamly/Data/Array.hs
|
|
core/src/Streamly/Data/Array/Unboxed.hs
|
|
core/src/Streamly/Data/Array/Unboxed/Mut.hs
|
|
core/src/Streamly/FileSystem/Handle.hs
|
|
core/src/Streamly/Internal/Data/Binary/Decode.hs
|
|
core/src/Streamly/Internal/Data/Time/Clock/Darwin.c
|
|
core/src/Streamly/Internal/Data/Time/Clock/Windows.c
|
|
core/src/Streamly/Internal/FileSystem/Handle.hs
|
|
core/src/Streamly/Internal/Unicode/Array/Char.hs
|
|
core/src/Streamly/Internal/Unicode/Char/Parser.hs
|
|
core/src/Streamly/Internal/Unicode/Stream.hs
|
|
core/src/Streamly/Internal/Unicode/String.hs
|
|
core/src/Streamly/Unicode/Stream.hs
|
|
core/src/Streamly/Console/Stdio.hs
|
|
core/src/Streamly/Internal/Console/Stdio.hs
|
|
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 opt
|
|
description: off=GHC default, on=-O2
|
|
manual: True
|
|
default: True
|
|
|
|
flag limit-build-mem
|
|
description: Limits memory when building
|
|
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(dev)
|
|
cpp-options: -DDEVBUILD
|
|
|
|
if flag(inspection)
|
|
cpp-options: -DINSPECTION
|
|
|
|
ghc-options: -Weverything
|
|
-Wno-implicit-prelude
|
|
-Wno-missing-deriving-strategies
|
|
-Wno-missing-exported-signatures
|
|
-Wno-missing-import-lists
|
|
-Wno-missing-local-signatures
|
|
-Wno-missing-safe-haskell-mode
|
|
-Wno-missed-specialisations
|
|
-Wno-all-missed-specialisations
|
|
-Wno-monomorphism-restriction
|
|
-Wno-prepositive-qualified-module
|
|
-Wno-unsafe
|
|
-Rghc-timing
|
|
|
|
if impl(ghc >= 9.2)
|
|
ghc-options:
|
|
-Wno-missing-kind-signatures
|
|
-Wno-redundant-bang-patterns
|
|
-Wno-operator-whitespace
|
|
|
|
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
|
|
|
|
Streamly.Internal.Data.IsMap.HashMap
|
|
|
|
-- 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.Serial
|
|
, Streamly.Internal.Data.Stream.WSerial
|
|
, Streamly.Internal.Data.Stream.Channel.Types
|
|
, Streamly.Internal.Data.Stream.Channel.Dispatcher
|
|
, Streamly.Internal.Data.Stream.Channel.Worker
|
|
|
|
, Streamly.Internal.Data.Stream.Async.Channel.Type
|
|
, Streamly.Internal.Data.Stream.Async.Channel.Dispatcher
|
|
, Streamly.Internal.Data.Stream.Async.Channel.Consumer
|
|
, Streamly.Internal.Data.Stream.Async.Channel.Append
|
|
, Streamly.Internal.Data.Stream.Async.Channel.Interleave
|
|
, Streamly.Internal.Data.Stream.Async.Channel.Operations
|
|
, Streamly.Internal.Data.Stream.Async.Channel
|
|
, Streamly.Internal.Data.Stream.Async
|
|
, 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.Async
|
|
, Streamly.Internal.Data.Stream.IsStream.Parallel
|
|
, Streamly.Internal.Data.Stream.IsStream
|
|
|
|
-- streamly-unicode
|
|
, Streamly.Internal.Unicode.Utf8
|
|
, Streamly.Internal.Unicode.Char
|
|
|
|
-- streamly-filesystem
|
|
, Streamly.Internal.FileSystem.Dir
|
|
, Streamly.Internal.FileSystem.File
|
|
|
|
-- streamly-network
|
|
, Streamly.Internal.Network.Socket
|
|
, Streamly.Internal.Network.Inet.TCP
|
|
|
|
-- Exposed modules
|
|
, Streamly.Prelude
|
|
|
|
-- Network/IO
|
|
, Streamly.Network.Socket
|
|
, Streamly.Network.Inet.TCP
|
|
|
|
-- Deprecated
|
|
, Streamly
|
|
, Streamly.Data.Unicode.Stream
|
|
, Streamly.Memory.Array
|
|
, Streamly.Data.Array.Foreign
|
|
|
|
if !impl(ghcjs) && flag(dev)
|
|
exposed-modules:
|
|
Streamly.Internal.System.IOVec.Type
|
|
, Streamly.Internal.System.IOVec
|
|
, Streamly.Internal.FileSystem.FDIO
|
|
, Streamly.Internal.FileSystem.FD
|
|
|
|
reexported-modules:
|
|
-- streamly-core exposed modules
|
|
, Streamly.Data.Unfold
|
|
, Streamly.Data.Stream
|
|
, Streamly.Data.Fold
|
|
, Streamly.Data.Fold.Tee
|
|
, Streamly.Data.Array.Unboxed
|
|
|
|
if flag(dev)
|
|
exposed-modules: Streamly.Data.SmallArray
|
|
, Streamly.Internal.Data.SmallArray
|
|
, Streamly.Internal.Data.SmallArray.Type
|
|
|
|
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.18
|
|
, containers >= 0.5 && < 0.7
|
|
, deepseq >= 1.4.1 && < 1.5
|
|
, directory >= 1.2.2 && < 1.4
|
|
, exceptions >= 0.8 && < 0.11
|
|
, mtl >= 2.2 && < 2.4
|
|
, transformers >= 0.4 && < 0.7
|
|
|
|
, monad-control
|
|
|
|
-- The core streamly package
|
|
, streamly-core == 0.1.0
|
|
|
|
, hashable >= 1.3 && < 1.5
|
|
, unordered-containers >= 0.2 && < 0.3
|
|
|
|
-- XXX to be removed
|
|
, transformers-base >= 0.4 && < 0.5
|
|
, heaps >= 0.3 && < 0.5
|
|
|
|
-- concurrency
|
|
, atomic-primops >= 0.8 && < 0.9
|
|
, lockfree-queue >= 0.2.4 && < 0.3
|
|
|
|
, unicode-data >= 0.1 && < 0.4
|
|
|
|
-- Network
|
|
, network >= 2.6 && < 3.2
|
|
|
|
if flag(dev)
|
|
build-depends: primitive >= 0.5.4 && < 0.8
|
|
|
|
if os(windows)
|
|
build-depends: Win32 >= 2.6 && < 2.13
|
|
|
|
if os(darwin)
|
|
frameworks: Cocoa
|
|
|
|
if flag(inspection)
|
|
build-depends: 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
|