Cabal revisions of streamly-0.11.0
Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.
revision 1
-cabal-version: 2.4-name: streamly-version: 0.11.0-synopsis: Streaming data pipelines with declarative concurrency-description:- For upgrading to streamly-0.9.0+ please read the- <https://github.com/composewell/streamly/blob/streamly-0.10.0/docs/User/Project/Upgrading-0.8-to-0.9.md Streamly-0.9.0 upgrade guide>.- .- Streamly is a high-performance, beginner-friendly standard library- for Haskell. It unifies streaming with list transformers and logic- programming; unifies streaming with concurrency and reactive- programming; unifies arrays with ring arrays, text, bytestring- and vector use cases; unifies arrays with builders and binary- serialization; generalizes parsers to any input type and unifies- attoparsec, parsec use cases with better performance; provides- streaming fileIO — all with a clean, consistent, well-integrated and- streaming enabled API.- .- Streams are designed to have a list like interface — no steep- learning curve, no complex types. Streamly is designed to build- general purpose applications in a truly functional manner, from- simple hello-world to advanced high-performance systems. The design- emphasizes simplicity, modularity, and code reuse with minimal- building blocks. Performance is on par with C, tuning is easy, and- it’s hard to get it wrong.- .- Streamly is serial by default, with seamless declarative concurrency- that scales automatically when needed. It provides prompt and safe- resource management, works well with other streaming libraries as well- as core libraries like bytestring and text, and is backed by solid- documentation.- .- The @streamly@ package is built on top of the @streamly-core@ package- and offers high-level capabilities such as concurrency, reactive- programming, time-related combinators, lifted exceptions, and- networking. It provides streaming with concurrency, and is a more- powerful, higher-level and more expressive alternative to the @async@- package.- .- Performant. Unified. Modular. Powerful. Simple.- .- Learn more at <https://streamly.composewell.com the streamly website>.--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.8- , GHC==9.4.7- , GHC==9.6.3- , GHC==9.8.1- , GHC==9.10.1- , GHC==9.12.1-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:- bench-test-lib/bench-test-lib.cabal- bench-test-lib/src/BenchTestLib/DirIO.hs- benchmark/*.hs- benchmark/bench-runner/Main.hs- benchmark/bench-runner/bench-runner.cabal- benchmark/Streamly/Benchmark/Data/*.hs- benchmark/Streamly/Benchmark/Data/Scanl/*.hs- benchmark/Streamly/Benchmark/Data/Fold/*.hs- benchmark/Streamly/Benchmark/Data/Serialize/*.hs- benchmark/Streamly/Benchmark/Data/Array/Common.hs- benchmark/Streamly/Benchmark/Data/Array/CommonImports.hs- benchmark/Streamly/Benchmark/Data/Array/Generic.hs- benchmark/Streamly/Benchmark/Data/Array/SmallArray.hs- benchmark/Streamly/Benchmark/Data/Array.hs- benchmark/Streamly/Benchmark/Data/RingArray.hs- benchmark/Streamly/Benchmark/Data/MutArray.hs- benchmark/Streamly/Benchmark/Data/Array/Stream.hs- benchmark/Streamly/Benchmark/Data/Fold/Window.hs- benchmark/Streamly/Benchmark/Data/Stream/*.hs- benchmark/Streamly/Benchmark/Data/StreamK/*.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- src/doctest/*.hs- 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/FileSystem/Event/Darwin.h- src/assert.hs- src/config.h.in- src/inline.hs- src/deprecation.h- test/Streamly/Test/Data/*.hs- test/Streamly/Test/Data/Array/CommonImports.hs- test/Streamly/Test/Data/Array/Common.hs- test/Streamly/Test/Data/Array/Generic.hs- test/Streamly/Test/Data/Array.hs- test/Streamly/Test/Data/MutArray.hs- test/Streamly/Test/Data/RingArray.hs- test/Streamly/Test/Data/Array/Stream.hs- test/Streamly/Test/Data/Parser.hs- test/Streamly/Test/Data/Parser/*.hs- test/Streamly/Test/Data/ParserK.hs- test/Streamly/Test/Data/Stream/*.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/*.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/Serialize/*.hs- test/Streamly/Test/Data/Scanl/*.hs- test/Streamly/Test/Data/Fold/*.hs- test/lib/Streamly/Test/Common.hs- test/lib/Streamly/Test/Prelude/Common.hs- test/lib/Streamly/Test/Parser/Common.hs- test/streamly-tests.cabal- test/version-bounds.hs- test/Streamly/Test/Unicode/ucd/NormalizationTest.txt- test/Streamly/Test/Unicode/extra/NormalizationTest.txt- test/Streamly/Test/Data/Unbox.hs- test/Streamly/Test/Data/Unbox/*.hs- test/Streamly/Test/Data/Serialize.hs- test/Streamly/Test/Data/Serialize/*.hs- 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--extra-doc-files:- CONTRIBUTING.md- CHANGELOG.md- README.md- benchmark/README.md- docs/*.md- docs/diagrams/module-diagram.hs- docs/Developer/*.link- docs/Developer/*.md- docs/Developer/*.png- docs/Developer/*.rst- docs/User/*.md- docs/User/Explanatory/*.md- docs/User/Explanatory/streaming-pradigms.rst- docs/User/HowTo/*.md- docs/User/HowTo/*.svg- docs/User/Project/*.link- docs/User/Project/*.md- docs/User/Project/ApiChangelogs/*.txt- docs/User/Tutorials/*.md- docs/User/Tutorials/*.link- docs/User/Tutorials/*.svg- docs/User/Tutorials/all-your-base.jpg- test/README.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 internal-dev- description: DO NOT USE, ONLY FOR INTERNAL USE.- 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--flag internal-use-unliftio- description: DO NOT USE, ONLY FOR INTERNAL USE.- manual: True- default: False------------------------------------------------------------------------------------ Common stanzas----------------------------------------------------------------------------------common compile-options- 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(internal-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 impl(ghc >= 9.8)- ghc-options:- -Wno-missing-role-annotations-- if flag(has-llvm)- ghc-options: -fllvm-- if flag(internal-dev)- ghc-options: -Wmissed-specialisations- -Wall-missed-specialisations-- if flag(limit-build-mem)- ghc-options: +RTS -M1000M -RTS-- if flag(internal-use-unliftio)- cpp-options: -DUSE_UNLIFTIO--common default-extensions- default-language: Haskell2010-- -- GHC2024 may include more extensions than we are actually using, see the- -- full list below. We enable this to ensure that we are able to compile- -- with this i.e. there is no interference by other extensions.-- -- Don't enforce GHC2024 and GHC2021 but We can support the build with them.-- -- if impl(ghc >= 9.10)- -- default-language: GHC2024-- -- if impl(ghc >= 9.2) && impl(ghc < 9.10)- -- default-language: GHC2021-- if impl(ghc >= 8.10)- default-extensions:- StandaloneKindSignatures-- -- In GHC 2024- default-extensions:- BangPatterns- ConstraintKinds- DeriveDataTypeable- DeriveGeneric- DeriveTraversable- ExistentialQuantification- FlexibleContexts- FlexibleInstances- GeneralizedNewtypeDeriving- InstanceSigs- KindSignatures- LambdaCase- MultiParamTypeClasses- RankNTypes- ScopedTypeVariables- TupleSections- TypeApplications- TypeOperators-- -- Not in GHC2024- default-extensions:- CApiFFI- CPP- MagicHash- RecordWildCards-- -- TypeFamilies -- required by IsHashMap type class-- -- MonoLocalBinds, enabled by TypeFamilies and GHC2024, was- -- once found to cause runtime performance regressions which- -- does not seem to be the case anymore, but need more testing- -- to confirm. It is confirmed that it requires more memory- -- for compilation at least in some cases (Data.Fold.Window- -- benchmark on GHC-9.10.1 macOS). Disabling this must come- -- after TypeFamilies, otherwise TypeFamilies will enable it- -- again.- -- NoMonoLocalBinds-- -- UndecidableInstances -- Does not show any perf impact- -- UnboxedTuples -- interferes with (#.)-- if impl(ghc >= 8.6)- default-extensions: QuantifiedConstraints--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(internal-dev) || flag(debug) || !flag(opt)- ghc-options: -fno-ignore-asserts- cpp-options: -DDEBUG--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-- include-dirs:- src- , src/doctest- , src/Streamly/Internal/Data/Stream-- 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.Internal.Data.Cont- , Streamly.Internal.Data.Channel- , Streamly.Internal.Data.Stream.MkType-- -- streamly-concurrent- , Streamly.Internal.Control.Concurrent- , Streamly.Internal.Control.ForkLifted- , Streamly.Internal.Data.Atomics- , Streamly.Internal.Data.IOFinalizer.Lifted-- , Streamly.Internal.Data.Stream.Prelude- , Streamly.Internal.Data.Unfold.Prelude- , Streamly.Internal.Data.Fold.Prelude- , Streamly.Internal.Data.Scanl.Prelude-- -- streamly-unicode (depends on unicode-data)- , Streamly.Internal.Unicode.Utf8- , Streamly.Internal.Unicode.Char-- -- streamly-network- , Streamly.Internal.Network.Socket- , Streamly.Internal.Network.Inet.TCP-- -- Exposed modules- , Streamly.Data.Stream.MkType- , Streamly.Data.Stream.Prelude- , Streamly.Data.Fold.Prelude- , Streamly.Data.Scanl.Prelude-- -- Network/IO- , Streamly.Network.Socket- , Streamly.Network.Inet.TCP-- -- Deprecated- , Streamly.Data.Array.Foreign- , Streamly.Data.Fold.Tee- , Streamly.Prelude-- -- Deprecated Internal modules- , Streamly.Internal.Data.SVar- , Streamly.Internal.Data.Stream.SVar-- , Streamly.Internal.Data.Stream.Serial- , Streamly.Internal.Data.Stream.Zip- , 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-- if !impl(ghcjs) && flag(internal-dev)- other-modules:- Streamly.Internal.System.IOVec.Type- , Streamly.Internal.System.IOVec- , Streamly.Internal.FileSystem.FDIO- , Streamly.Internal.FileSystem.FD-- if flag(internal-dev)- exposed-modules: Streamly.Internal.Data.SmallArray- -- Exposed modules show up on hackage irrespective of the flag, so keep- -- it hidden.- other-modules: Streamly.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.c- 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-- other-modules:- Streamly.Internal.Data.Channel.Types- , Streamly.Internal.Data.Channel.Dispatcher- , Streamly.Internal.Data.Channel.Worker-- , Streamly.Internal.Data.Stream.Channel.Type- , Streamly.Internal.Data.Stream.Channel.Dispatcher- , Streamly.Internal.Data.Stream.Channel.Consumer- , Streamly.Internal.Data.Stream.Channel.Append- , Streamly.Internal.Data.Stream.Channel.Interleave- , Streamly.Internal.Data.Stream.Channel.Operations- , Streamly.Internal.Data.Stream.Channel- , Streamly.Internal.Data.Stream.Concurrent- , Streamly.Internal.Data.Stream.Time- , Streamly.Internal.Data.Stream.Lifted-- , Streamly.Internal.Data.Fold.Time- , Streamly.Internal.Data.Fold.Channel.Type- , Streamly.Internal.Data.Fold.Channel- , Streamly.Internal.Data.Fold.Concurrent- , Streamly.Internal.Data.Scanl.Concurrent-- , Streamly.Internal.Data.Unfold.Exception- , Streamly.Internal.Data.Unfold.SVar-- -- Deprecated- , Streamly.Internal.Data.Stream.Common- , Streamly.Internal.Data.Stream.IsStream.Type- , 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.Combinators- , Streamly.Internal.Data.Stream.IsStream.Common- , Streamly.Internal.Data.Stream.IsStream.Enumeration-- , Streamly.Internal.Data.Stream.SVar.Generate- , Streamly.Internal.Data.Stream.SVar.Eliminate-- , Streamly.Internal.Data.Fold.SVar-- , Streamly.Internal.Data.SVar.Worker- , Streamly.Internal.Data.SVar.Dispatch- , Streamly.Internal.Data.SVar.Pull-- 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.12 && < 4.22- , fusion-plugin-types >= 0.1 && < 0.2- , containers >= 0.6.0 && < 0.8- , deepseq >= 1.4.4 && < 1.6- , exceptions >= 0.8.0 && < 0.11- , mtl >= 2.2.2 && < 2.4- , transformers >= 0.5.5 && < 0.7- , template-haskell >= 2.14 && < 2.24-- -- The core streamly package- , streamly-core == 0.3.0-- , hashable >= 1.3 && < 1.6- , unordered-containers >= 0.2 && < 0.3- , heaps >= 0.3 && < 0.5-- -- concurrency- , lockfree-queue >= 0.2.4 && < 0.3-- , unicode-data >= 0.1 && < 0.7-- -- Network- , network >= 2.6 && < 3.3--- if impl(ghc < 9.10)- build-depends: atomic-primops >= 0.8 && < 0.9- else- build-depends: atomic-primops >= 0.8.8 && < 0.9-- if impl(ghc < 9.6)- build-depends: transformers-base >= 0.4 && < 0.5-- if flag(internal-use-unliftio)- build-depends: unliftio-core >= 0.2 && < 0.3- else- build-depends: monad-control >= 1.0 && < 1.1-- if flag(internal-dev)- build-depends: primitive >= 0.5.4 && < 0.9-- -- For FileSystem.Event module- if os(linux)- build-depends: directory >= 1.2.2 && < 1.4-- if os(windows)- build-depends: Win32 >= 2.6 && < 2.14-- if os(darwin)- build-depends: directory >= 1.2.2 && < 1.4- frameworks: Cocoa-- if flag(inspection)- build-depends: inspection-testing >= 0.4 && < 0.6-- -- Array uses a Storable constraint in dev build making several inspection- -- tests fail- if flag(internal-dev) && flag(inspection)- build-depends: inspection-and-dev-flags-cannot-be-used-together+cabal-version: 2.4 +name: streamly +version: 0.11.0 +x-revision: 1 +synopsis: Streaming data pipelines with declarative concurrency +description: + For upgrading to streamly-0.9.0+ please read the + <https://github.com/composewell/streamly/blob/streamly-0.10.0/docs/User/Project/Upgrading-0.8-to-0.9.md Streamly-0.9.0 upgrade guide>. + . + Streamly is a high-performance, beginner-friendly standard library + for Haskell. It unifies streaming with list transformers and logic + programming; unifies streaming with concurrency and reactive + programming; unifies arrays with ring arrays, text, bytestring + and vector use cases; unifies arrays with builders and binary + serialization; generalizes parsers to any input type and unifies + attoparsec, parsec use cases with better performance; provides + streaming fileIO — all with a clean, consistent, well-integrated and + streaming enabled API. + . + Streams are designed to have a list like interface — no steep + learning curve, no complex types. Streamly is designed to build + general purpose applications in a truly functional manner, from + simple hello-world to advanced high-performance systems. The design + emphasizes simplicity, modularity, and code reuse with minimal + building blocks. Performance is on par with C, tuning is easy, and + it’s hard to get it wrong. + . + Streamly is serial by default, with seamless declarative concurrency + that scales automatically when needed. It provides prompt and safe + resource management, works well with other streaming libraries as well + as core libraries like bytestring and text, and is backed by solid + documentation. + . + The @streamly@ package is built on top of the @streamly-core@ package + and offers high-level capabilities such as concurrency, reactive + programming, time-related combinators, lifted exceptions, and + networking. It provides streaming with concurrency, and is a more + powerful, higher-level and more expressive alternative to the @async@ + package. + . + Performant. Unified. Modular. Powerful. Simple. + . + Learn more at <https://streamly.composewell.com the streamly website>. + +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.8 + , GHC==9.4.7 + , GHC==9.6.3 + , GHC==9.8.1 + , GHC==9.10.1 + , GHC==9.12.1 +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: + bench-test-lib/bench-test-lib.cabal + bench-test-lib/src/BenchTestLib/DirIO.hs + benchmark/*.hs + benchmark/bench-runner/Main.hs + benchmark/bench-runner/bench-runner.cabal + benchmark/Streamly/Benchmark/Data/*.hs + benchmark/Streamly/Benchmark/Data/Scanl/*.hs + benchmark/Streamly/Benchmark/Data/Fold/*.hs + benchmark/Streamly/Benchmark/Data/Serialize/*.hs + benchmark/Streamly/Benchmark/Data/Array/Common.hs + benchmark/Streamly/Benchmark/Data/Array/CommonImports.hs + benchmark/Streamly/Benchmark/Data/Array/Generic.hs + benchmark/Streamly/Benchmark/Data/Array/SmallArray.hs + benchmark/Streamly/Benchmark/Data/Array.hs + benchmark/Streamly/Benchmark/Data/RingArray.hs + benchmark/Streamly/Benchmark/Data/MutArray.hs + benchmark/Streamly/Benchmark/Data/Array/Stream.hs + benchmark/Streamly/Benchmark/Data/Fold/Window.hs + benchmark/Streamly/Benchmark/Data/Stream/*.hs + benchmark/Streamly/Benchmark/Data/StreamK/*.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 + src/doctest/*.hs + 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/FileSystem/Event/Darwin.h + src/assert.hs + src/config.h.in + src/inline.hs + src/deprecation.h + test/Streamly/Test/Data/*.hs + test/Streamly/Test/Data/Array/CommonImports.hs + test/Streamly/Test/Data/Array/Common.hs + test/Streamly/Test/Data/Array/Generic.hs + test/Streamly/Test/Data/Array.hs + test/Streamly/Test/Data/MutArray.hs + test/Streamly/Test/Data/RingArray.hs + test/Streamly/Test/Data/Array/Stream.hs + test/Streamly/Test/Data/Parser.hs + test/Streamly/Test/Data/Parser/*.hs + test/Streamly/Test/Data/ParserK.hs + test/Streamly/Test/Data/Stream/*.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/*.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/Serialize/*.hs + test/Streamly/Test/Data/Scanl/*.hs + test/Streamly/Test/Data/Fold/*.hs + test/lib/Streamly/Test/Common.hs + test/lib/Streamly/Test/Prelude/Common.hs + test/lib/Streamly/Test/Parser/Common.hs + test/streamly-tests.cabal + test/version-bounds.hs + test/Streamly/Test/Unicode/ucd/NormalizationTest.txt + test/Streamly/Test/Unicode/extra/NormalizationTest.txt + test/Streamly/Test/Data/Unbox.hs + test/Streamly/Test/Data/Unbox/*.hs + test/Streamly/Test/Data/Serialize.hs + test/Streamly/Test/Data/Serialize/*.hs + 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 + +extra-doc-files: + CONTRIBUTING.md + CHANGELOG.md + README.md + benchmark/README.md + docs/*.md + docs/diagrams/module-diagram.hs + docs/Developer/*.link + docs/Developer/*.md + docs/Developer/*.png + docs/Developer/*.rst + docs/User/*.md + docs/User/Explanatory/*.md + docs/User/Explanatory/streaming-pradigms.rst + docs/User/HowTo/*.md + docs/User/HowTo/*.svg + docs/User/Project/*.link + docs/User/Project/*.md + docs/User/Project/ApiChangelogs/*.txt + docs/User/Tutorials/*.md + docs/User/Tutorials/*.link + docs/User/Tutorials/*.svg + docs/User/Tutorials/all-your-base.jpg + test/README.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 internal-dev + description: DO NOT USE, ONLY FOR INTERNAL USE. + 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 + +flag internal-use-unliftio + description: DO NOT USE, ONLY FOR INTERNAL USE. + manual: True + default: False + +------------------------------------------------------------------------------- +-- Common stanzas +------------------------------------------------------------------------------- + +common compile-options + 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(internal-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 impl(ghc >= 9.8) + ghc-options: + -Wno-missing-role-annotations + + if flag(has-llvm) + ghc-options: -fllvm + + if flag(internal-dev) + ghc-options: -Wmissed-specialisations + -Wall-missed-specialisations + + if flag(limit-build-mem) + ghc-options: +RTS -M1000M -RTS + + if flag(internal-use-unliftio) + cpp-options: -DUSE_UNLIFTIO + +common default-extensions + default-language: Haskell2010 + + -- GHC2024 may include more extensions than we are actually using, see the + -- full list below. We enable this to ensure that we are able to compile + -- with this i.e. there is no interference by other extensions. + + -- Don't enforce GHC2024 and GHC2021 but We can support the build with them. + + -- if impl(ghc >= 9.10) + -- default-language: GHC2024 + + -- if impl(ghc >= 9.2) && impl(ghc < 9.10) + -- default-language: GHC2021 + + if impl(ghc >= 8.10) + default-extensions: + StandaloneKindSignatures + + -- In GHC 2024 + default-extensions: + BangPatterns + ConstraintKinds + DeriveDataTypeable + DeriveGeneric + DeriveTraversable + ExistentialQuantification + FlexibleContexts + FlexibleInstances + GeneralizedNewtypeDeriving + InstanceSigs + KindSignatures + LambdaCase + MultiParamTypeClasses + RankNTypes + ScopedTypeVariables + TupleSections + TypeApplications + TypeOperators + + -- Not in GHC2024 + default-extensions: + CApiFFI + CPP + MagicHash + RecordWildCards + + -- TypeFamilies -- required by IsHashMap type class + + -- MonoLocalBinds, enabled by TypeFamilies and GHC2024, was + -- once found to cause runtime performance regressions which + -- does not seem to be the case anymore, but need more testing + -- to confirm. It is confirmed that it requires more memory + -- for compilation at least in some cases (Data.Fold.Window + -- benchmark on GHC-9.10.1 macOS). Disabling this must come + -- after TypeFamilies, otherwise TypeFamilies will enable it + -- again. + -- NoMonoLocalBinds + + -- UndecidableInstances -- Does not show any perf impact + -- UnboxedTuples -- interferes with (#.) + + if impl(ghc >= 8.6) + default-extensions: QuantifiedConstraints + +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(internal-dev) || flag(debug) || !flag(opt) + ghc-options: -fno-ignore-asserts + cpp-options: -DDEBUG + +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 + + include-dirs: + src + , src/doctest + , src/Streamly/Internal/Data/Stream + + 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.Internal.Data.Cont + , Streamly.Internal.Data.Channel + , Streamly.Internal.Data.Stream.MkType + + -- streamly-concurrent + , Streamly.Internal.Control.Concurrent + , Streamly.Internal.Control.ForkLifted + , Streamly.Internal.Data.Atomics + , Streamly.Internal.Data.IOFinalizer.Lifted + + , Streamly.Internal.Data.Stream.Prelude + , Streamly.Internal.Data.Unfold.Prelude + , Streamly.Internal.Data.Fold.Prelude + , Streamly.Internal.Data.Scanl.Prelude + + -- streamly-unicode (depends on unicode-data) + , Streamly.Internal.Unicode.Utf8 + , Streamly.Internal.Unicode.Char + + -- streamly-network + , Streamly.Internal.Network.Socket + , Streamly.Internal.Network.Inet.TCP + + -- Exposed modules + , Streamly.Data.Stream.MkType + , Streamly.Data.Stream.Prelude + , Streamly.Data.Fold.Prelude + , Streamly.Data.Scanl.Prelude + + -- Network/IO + , Streamly.Network.Socket + , Streamly.Network.Inet.TCP + + -- Deprecated + , Streamly.Data.Array.Foreign + , Streamly.Data.Fold.Tee + , Streamly.Prelude + + -- Deprecated Internal modules + , Streamly.Internal.Data.SVar + , Streamly.Internal.Data.Stream.SVar + + , Streamly.Internal.Data.Stream.Serial + , Streamly.Internal.Data.Stream.Zip + , 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 + + if !impl(ghcjs) && flag(internal-dev) + other-modules: + Streamly.Internal.System.IOVec.Type + , Streamly.Internal.System.IOVec + , Streamly.Internal.FileSystem.FDIO + , Streamly.Internal.FileSystem.FD + + if flag(internal-dev) + exposed-modules: Streamly.Internal.Data.SmallArray + -- Exposed modules show up on hackage irrespective of the flag, so keep + -- it hidden. + other-modules: Streamly.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.c + 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 + + other-modules: + Streamly.Internal.Data.Channel.Types + , Streamly.Internal.Data.Channel.Dispatcher + , Streamly.Internal.Data.Channel.Worker + + , Streamly.Internal.Data.Stream.Channel.Type + , Streamly.Internal.Data.Stream.Channel.Dispatcher + , Streamly.Internal.Data.Stream.Channel.Consumer + , Streamly.Internal.Data.Stream.Channel.Append + , Streamly.Internal.Data.Stream.Channel.Interleave + , Streamly.Internal.Data.Stream.Channel.Operations + , Streamly.Internal.Data.Stream.Channel + , Streamly.Internal.Data.Stream.Concurrent + , Streamly.Internal.Data.Stream.Time + , Streamly.Internal.Data.Stream.Lifted + + , Streamly.Internal.Data.Fold.Time + , Streamly.Internal.Data.Fold.Channel.Type + , Streamly.Internal.Data.Fold.Channel + , Streamly.Internal.Data.Fold.Concurrent + , Streamly.Internal.Data.Scanl.Concurrent + + , Streamly.Internal.Data.Unfold.Exception + , Streamly.Internal.Data.Unfold.SVar + + -- Deprecated + , Streamly.Internal.Data.Stream.Common + , Streamly.Internal.Data.Stream.IsStream.Type + , 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.Combinators + , Streamly.Internal.Data.Stream.IsStream.Common + , Streamly.Internal.Data.Stream.IsStream.Enumeration + + , Streamly.Internal.Data.Stream.SVar.Generate + , Streamly.Internal.Data.Stream.SVar.Eliminate + + , Streamly.Internal.Data.Fold.SVar + + , Streamly.Internal.Data.SVar.Worker + , Streamly.Internal.Data.SVar.Dispatch + , Streamly.Internal.Data.SVar.Pull + + 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.12 && < 4.22 + , fusion-plugin-types >= 0.1 && < 0.2 + , containers >= 0.6.0 && < 0.8 + , deepseq >= 1.4.4 && < 1.6 + , exceptions >= 0.8.0 && < 0.11 + , mtl >= 2.2.2 && < 2.4 + , transformers >= 0.5.5 && < 0.7 + , template-haskell >= 2.14 && < 2.24 + + -- The core streamly package + , streamly-core == 0.3.0 + + , hashable >= 1.3 && < 1.6 + , unordered-containers >= 0.2 && < 0.3 + , heaps >= 0.3 && < 0.5 + + -- concurrency + , lockfree-queue >= 0.2.4 && < 0.3 + + , unicode-data >= 0.1 && < 0.9 + + -- Network + , network >= 2.6 && < 3.3 + + + if impl(ghc < 9.10) + build-depends: atomic-primops >= 0.8 && < 0.9 + else + build-depends: atomic-primops >= 0.8.8 && < 0.9 + + if impl(ghc < 9.6) + build-depends: transformers-base >= 0.4 && < 0.5 + + if flag(internal-use-unliftio) + build-depends: unliftio-core >= 0.2 && < 0.3 + else + build-depends: monad-control >= 1.0 && < 1.1 + + if flag(internal-dev) + build-depends: primitive >= 0.5.4 && < 0.9 + + -- For FileSystem.Event module + if os(linux) + build-depends: directory >= 1.2.2 && < 1.4 + + if os(windows) + build-depends: Win32 >= 2.6 && < 2.14 + + if os(darwin) + build-depends: directory >= 1.2.2 && < 1.4 + frameworks: Cocoa + + if flag(inspection) + build-depends: inspection-testing >= 0.4 && < 0.6 + + -- Array uses a Storable constraint in dev build making several inspection + -- tests fail + if flag(internal-dev) && flag(inspection) + build-depends: inspection-and-dev-flags-cannot-be-used-together
revision 2
cabal-version: 2.4 name: streamly version: 0.11.0 -x-revision: 1 +x-revision: 2 synopsis: Streaming data pipelines with declarative concurrency description: For upgrading to streamly-0.9.0+ please read the , GHC==9.4.7 , GHC==9.6.3 , GHC==9.8.1 - , GHC==9.10.1 - , GHC==9.12.1 + , GHC==9.10.3 + , GHC==9.12.4 + , GHC==9.14.1 author: Composewell Technologies maintainer: streamly@composewell.com copyright: 2017 Composewell Technologies -- packages depending on the "ghc" package (packages -- depending on doctest is a common example) can -- depend on streamly. - base >= 4.12 && < 4.22 + base >= 4.12 && < 4.23 , fusion-plugin-types >= 0.1 && < 0.2 - , containers >= 0.6.0 && < 0.8 + , containers >= 0.6.0 && < 0.9 , deepseq >= 1.4.4 && < 1.6 , exceptions >= 0.8.0 && < 0.11 , mtl >= 2.2.2 && < 2.4 , transformers >= 0.5.5 && < 0.7 - , template-haskell >= 2.14 && < 2.24 + , template-haskell >= 2.14 && < 2.25 -- The core streamly package , streamly-core == 0.3.0 , unicode-data >= 0.1 && < 0.9 -- Network - , network >= 2.6 && < 3.3 + -- network version 3.2.8 is broken on windows + , network >= 2.6 && < 3.3 if impl(ghc < 9.10) build-depends: monad-control >= 1.0 && < 1.1 if flag(internal-dev) - build-depends: primitive >= 0.5.4 && < 0.9 + build-depends: primitive >= 0.5.4 && < 0.10 -- For FileSystem.Event module if os(linux) build-depends: directory >= 1.2.2 && < 1.4 if os(windows) - build-depends: Win32 >= 2.6 && < 2.14 + build-depends: Win32 >= 2.6 && < 2.15 if os(darwin) build-depends: directory >= 1.2.2 && < 1.4 frameworks: Cocoa if flag(inspection) - build-depends: inspection-testing >= 0.4 && < 0.6 + build-depends: inspection-testing >= 0.4 && < 0.7 -- Array uses a Storable constraint in dev build making several inspection -- tests fail