streamly/streamly.cabal
Ranjeet Ranjan 0be81f99fd
Remove the use-c-malloc build flag (#1793)
* Remove the use-c-malloc build flag
2022-08-22 14:15:52 +05:30

703 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/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/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/Stream/Instances.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/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/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/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/Unboxed.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/Unfold.hs
core/src/Streamly/Internal/Data/Fold/Window.hs
core/src/Streamly/Data/Array/Unboxed.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 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
-- XXX To be removed or put under dev flag
, Streamly.Internal.Data.SmallArray.Type
, 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-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
, Streamly.Data.Array.Foreign
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.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
, Streamly.Internal.Data.IORef.Unboxed
-- May depend on streamly-core-stream
, Streamly.Internal.Data.Array.Unboxed.Mut.Type
, Streamly.Internal.Data.Array.Unboxed.Mut
, Streamly.Internal.Data.Array.Unboxed.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.Enumerate
, 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.Top
, 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.Unboxed
, 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.Unfold
, Streamly.Data.Stream
, Streamly.Data.Fold
, Streamly.Data.Fold.Tee
, Streamly.Data.Array.Unboxed
other-modules:
Streamly.Data.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.18
, 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.10
, mtl >= 2.2 && < 2.3
, transformers >= 0.4 && < 0.7
, template-haskell >= 2.13 && < 2.20
-- The core streamly package
, streamly-core == 0.1.0
, fusion-plugin-types >= 0.1 && < 0.2
, hashable >= 1.3 && < 1.5
, unordered-containers >= 0.2 && < 0.3
-- 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: 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