2019-08-23 05:35:19 +03:00
|
|
|
|
cabal-version: 2.2
|
2017-11-20 15:33:13 +03:00
|
|
|
|
name: streamly
|
2020-04-20 14:12:00 +03:00
|
|
|
|
version: 0.7.2
|
2017-10-20 07:06:00 +03:00
|
|
|
|
synopsis: Beautiful Streaming, Concurrent and Reactive Composition
|
2017-12-02 18:39:06 +03:00
|
|
|
|
description:
|
2019-08-27 12:44:39 +03:00
|
|
|
|
Streamly is a framework for writing programs in a high level, declarative
|
|
|
|
|
data flow programming paradigm. It provides a simple API, very close to
|
|
|
|
|
standard Haskell lists. A program is expressed as a composition of data
|
|
|
|
|
processing pipes, generally known as streams. Streams can be generated,
|
|
|
|
|
merged, chained, mapped, zipped, and consumed concurrently – enabling a high
|
|
|
|
|
level, declarative yet concurrent composition of programs. Programs can be
|
|
|
|
|
concurrent or non-concurrent without any significant change. Concurrency is
|
|
|
|
|
auto scaled based on consumption rate. Programmers do not have to be aware
|
|
|
|
|
of threads, locking or synchronization to write scalable concurrent programs.
|
|
|
|
|
Streamly provides C like performance, orders of magnitude better compared to
|
|
|
|
|
existing streaming libraries.
|
2017-10-20 07:06:00 +03:00
|
|
|
|
.
|
2019-08-27 12:44:39 +03:00
|
|
|
|
Streamly is designed to express the full spectrum of programs with highest
|
|
|
|
|
performance. Do not think that if you are writing a small and simple program
|
|
|
|
|
it may not be for you. It expresses a small "hello world" program with the
|
|
|
|
|
same efficiency, simplicity and elegance as a large scale concurrent
|
|
|
|
|
application. It unifies many different aspects of special purpose libraries
|
2019-11-20 14:38:15 +03:00
|
|
|
|
into a single yet simple framework.
|
2019-08-27 12:44:39 +03:00
|
|
|
|
.
|
|
|
|
|
Streamly covers the functionality provided by Haskell lists as well as the
|
|
|
|
|
functionality provided by streaming libraries like
|
2018-06-14 23:38:06 +03:00
|
|
|
|
<https://hackage.haskell.org/package/streaming streaming>,
|
|
|
|
|
<https://hackage.haskell.org/package/pipes pipes>, and
|
2019-08-27 12:44:39 +03:00
|
|
|
|
<https://hackage.haskell.org/package/conduit conduit> with a simpler API and
|
|
|
|
|
better performance. Streamly provides
|
2019-05-12 23:35:22 +03:00
|
|
|
|
advanced stream composition including various ways of appending, merging,
|
|
|
|
|
zipping, splitting, grouping, distributing, partitioning and unzipping of
|
|
|
|
|
streams with true streaming and with concurrency. Streamly subsumes the
|
2018-06-14 23:38:06 +03:00
|
|
|
|
functionality of list transformer libraries like @pipes@ or
|
2018-05-04 21:53:03 +03:00
|
|
|
|
<https://hackage.haskell.org/package/list-t list-t> and also the logic
|
2019-08-27 12:44:39 +03:00
|
|
|
|
programming library <https://hackage.haskell.org/package/logict logict>.
|
|
|
|
|
The grouping, splitting and windowing combinators in streamly can be compared
|
|
|
|
|
to the window operators in <https://flink.apache.org/ Apache Flink>.
|
|
|
|
|
However, compared to Flink streamly has a pure functional, succinct and
|
|
|
|
|
expressive API.
|
2018-05-04 21:53:03 +03:00
|
|
|
|
.
|
2019-08-27 12:44:39 +03:00
|
|
|
|
The concurrency capabilities of streamly are much more advanced and powerful
|
|
|
|
|
compared to the basic concurrency functionality provided by the
|
|
|
|
|
<https://hackage.haskell.org/package/async async> package. Streamly is a
|
|
|
|
|
first class reactive programming library. If you are familiar with
|
|
|
|
|
<http://reactivex.io/ Reactive Extensions> you will find that it is very
|
|
|
|
|
similar. For most RxJs combinators you can find or write corresponding ones
|
|
|
|
|
in streamly. Streamly can be used as an alternative to
|
|
|
|
|
<https://hackage.haskell.org/package/Yampa Yampa> or
|
|
|
|
|
<https://hackage.haskell.org/package/reflex reflex> as well.
|
2019-05-22 01:17:22 +03:00
|
|
|
|
.
|
|
|
|
|
Streamly focuses on practical engineering with high performance. From well
|
|
|
|
|
written streamly programs one can expect performance competitive to C. High
|
|
|
|
|
performance streaming eliminates the need for string and text libraries like
|
2019-05-12 23:35:22 +03:00
|
|
|
|
<https://hackage.haskell.org/package/bytestring bytestring>,
|
|
|
|
|
<https://hackage.haskell.org/package/text text> and their lazy and strict
|
2019-08-27 12:44:39 +03:00
|
|
|
|
flavors. The confusion and cognitive overhead arising from different
|
|
|
|
|
string types is eliminated. The two fundamental types in streamly are arrays
|
|
|
|
|
for storage and streams for processing. Strings and text are simply streams
|
|
|
|
|
or arrays of 'Char' as they should be. Arrays in streamly have performance
|
|
|
|
|
at par with the vector library.
|
2018-05-04 21:53:03 +03:00
|
|
|
|
.
|
|
|
|
|
Where to find more information:
|
|
|
|
|
.
|
2020-01-02 09:06:11 +03:00
|
|
|
|
* /Quick Overview/: <#readme README file> in the package
|
2019-08-27 12:44:39 +03:00
|
|
|
|
* /Building/: <src/docs/Build.md Build guide> for optimal performance
|
2018-10-22 11:05:54 +03:00
|
|
|
|
* /Detailed Tutorial/: "Streamly.Tutorial" module in the haddock documentation
|
2019-08-27 12:44:39 +03:00
|
|
|
|
* /Interoperation/: "Streamly.Tutorial" module for interop with other
|
|
|
|
|
streaming libraries
|
2018-10-22 11:05:54 +03:00
|
|
|
|
* /Reference Documentation/: Haddock documentation for the respective modules
|
|
|
|
|
* /Examples/: <src/examples examples directory> in the package
|
|
|
|
|
* /Guides/: <src/docs docs directory> in the package, for documentation on
|
|
|
|
|
advanced topics, limitations, semantics of the library or on specific use
|
|
|
|
|
cases.
|
2018-10-26 21:34:55 +03:00
|
|
|
|
* <https://github.com/composewell/streaming-benchmarks Streaming Benchmarks>
|
|
|
|
|
* <https://github.com/composewell/concurrency-benchmarks Concurrency Benchmarks>
|
2019-11-14 23:51:34 +03:00
|
|
|
|
.
|
|
|
|
|
|
2017-12-02 18:39:06 +03:00
|
|
|
|
|
2017-12-05 18:40:43 +03:00
|
|
|
|
homepage: https://github.com/composewell/streamly
|
|
|
|
|
bug-reports: https://github.com/composewell/streamly/issues
|
2019-08-23 05:35:19 +03:00
|
|
|
|
license: BSD-3-Clause
|
2017-06-07 18:32:27 +03:00
|
|
|
|
license-file: LICENSE
|
2018-12-30 22:17:49 +03:00
|
|
|
|
tested-with: GHC==7.10.3
|
|
|
|
|
, GHC==8.0.2
|
|
|
|
|
, GHC==8.4.4
|
2019-08-27 05:18:30 +03:00
|
|
|
|
, GHC==8.6.5
|
|
|
|
|
, GHC==8.8.1
|
2020-04-20 13:53:42 +03:00
|
|
|
|
, GHC==8.10.1
|
2017-09-04 13:19:11 +03:00
|
|
|
|
author: Harendra Kumar
|
2019-11-06 19:25:35 +03:00
|
|
|
|
maintainer: streamly@composewell.com
|
2017-09-04 13:19:11 +03:00
|
|
|
|
copyright: 2017 Harendra Kumar
|
2017-09-06 06:29:43 +03:00
|
|
|
|
category: Control, Concurrency, Streaming, Reactivity
|
2017-06-07 18:32:27 +03:00
|
|
|
|
stability: Experimental
|
2019-01-11 00:51:02 +03:00
|
|
|
|
build-type: Configure
|
2017-06-07 18:32:27 +03:00
|
|
|
|
|
2017-12-04 13:39:36 +03:00
|
|
|
|
extra-source-files:
|
2020-06-03 17:59:10 +03:00
|
|
|
|
.circleci/config.yml
|
|
|
|
|
.github/workflows/haskell.yml
|
|
|
|
|
.gitignore
|
|
|
|
|
.hlint.ignore
|
|
|
|
|
.hlint.yaml
|
|
|
|
|
.travis.yml
|
2020-06-06 23:07:55 +03:00
|
|
|
|
CONTRIBUTING.md
|
|
|
|
|
Changelog.md
|
|
|
|
|
INSTALL.md
|
|
|
|
|
MAINTAINING.md
|
|
|
|
|
README.md
|
2020-06-03 17:59:10 +03:00
|
|
|
|
appveyor.yml
|
2020-06-06 23:07:55 +03:00
|
|
|
|
bench.sh
|
|
|
|
|
benchmark/*.hs
|
|
|
|
|
benchmark/README.md
|
|
|
|
|
benchmark/Streamly/Benchmark/Data/*.hs
|
|
|
|
|
benchmark/Streamly/Benchmark/Data/Parser/*.hs
|
|
|
|
|
benchmark/Streamly/Benchmark/Data/Prim/*.hs
|
|
|
|
|
benchmark/Streamly/Benchmark/Data/Stream/*.hs
|
|
|
|
|
benchmark/Streamly/Benchmark/FileIO/*.hs
|
|
|
|
|
benchmark/Streamly/Benchmark/Memory/*.hs
|
|
|
|
|
benchmark/Streamly/Benchmark/Prelude/*.hs
|
|
|
|
|
benchmark/lib/Streamly/Benchmark/*.hs
|
|
|
|
|
benchmark/streamly-benchmarks.cabal
|
2020-06-06 23:06:45 +03:00
|
|
|
|
bin/bench-exec-one.sh
|
2020-06-03 17:59:10 +03:00
|
|
|
|
cabal.project.ci
|
|
|
|
|
charts-0/streamly-vs-list-time.svg
|
2020-06-06 23:07:55 +03:00
|
|
|
|
configure
|
|
|
|
|
configure.ac
|
2019-01-21 07:36:50 +03:00
|
|
|
|
credits/*.md
|
2020-06-06 23:07:55 +03:00
|
|
|
|
credits/Yampa-0.10.6.2.txt
|
2019-11-15 02:14:20 +03:00
|
|
|
|
credits/base-4.12.0.0.txt
|
|
|
|
|
credits/bjoern-2008-2009.txt
|
2019-01-21 07:36:50 +03:00
|
|
|
|
credits/clock-0.7.2.txt
|
|
|
|
|
credits/foldl-1.4.5.txt
|
|
|
|
|
credits/pipes-concurrency-2.0.8.txt
|
2020-06-06 23:07:55 +03:00
|
|
|
|
credits/primitive-0.7.0.0.txt
|
2019-01-21 07:36:50 +03:00
|
|
|
|
credits/transient-0.5.5.txt
|
|
|
|
|
credits/vector-0.12.0.2.txt
|
2019-11-20 14:38:15 +03:00
|
|
|
|
design/*.md
|
|
|
|
|
design/*.png
|
2020-06-03 17:59:10 +03:00
|
|
|
|
design/*.rst
|
2020-06-06 23:07:55 +03:00
|
|
|
|
docs/Build.md
|
|
|
|
|
docs/streamly-vs-async.md
|
|
|
|
|
docs/streamly-vs-lists.md
|
|
|
|
|
docs/transformers.md
|
2020-06-03 17:59:10 +03:00
|
|
|
|
examples/README.md
|
2019-12-09 13:37:17 +03:00
|
|
|
|
src/Streamly/Internal/Data/Stream/Instances.hs
|
2019-09-25 09:08:14 +03:00
|
|
|
|
src/Streamly/Internal/Data/Time/config.h.in
|
2020-06-06 23:07:55 +03:00
|
|
|
|
src/inline.hs
|
|
|
|
|
stack.yaml
|
2019-01-11 00:51:02 +03:00
|
|
|
|
|
|
|
|
|
extra-tmp-files:
|
|
|
|
|
config.log
|
|
|
|
|
config.status
|
|
|
|
|
autom4te.cache
|
2019-09-25 09:08:14 +03:00
|
|
|
|
src/Streamly/Internal/Data/Time/config.h
|
2017-12-04 13:39:36 +03:00
|
|
|
|
|
2017-10-18 09:21:38 +03:00
|
|
|
|
source-repository head
|
|
|
|
|
type: git
|
2017-12-05 18:40:43 +03:00
|
|
|
|
location: https://github.com/composewell/streamly
|
2017-10-18 09:21:38 +03:00
|
|
|
|
|
2020-01-25 16:19:33 +03:00
|
|
|
|
flag fusion-plugin
|
2020-02-20 12:38:12 +03:00
|
|
|
|
description: Use fusion plugin for benchmarks and executables
|
2020-01-25 16:19:33 +03:00
|
|
|
|
manual: True
|
|
|
|
|
default: False
|
|
|
|
|
|
2019-08-27 18:32:44 +03:00
|
|
|
|
flag inspection
|
|
|
|
|
description: Enable inspection testing
|
|
|
|
|
manual: True
|
|
|
|
|
default: False
|
|
|
|
|
|
2019-11-08 19:44:07 +03:00
|
|
|
|
flag debug
|
|
|
|
|
description: Debug build with asserts enabled
|
|
|
|
|
manual: True
|
|
|
|
|
default: False
|
|
|
|
|
|
2017-09-14 06:10:50 +03:00
|
|
|
|
flag dev
|
2018-05-27 07:22:00 +03:00
|
|
|
|
description: Development build
|
2017-09-14 06:10:50 +03:00
|
|
|
|
manual: True
|
|
|
|
|
default: False
|
|
|
|
|
|
2019-05-16 04:21:23 +03:00
|
|
|
|
flag has-llvm
|
2020-02-20 12:38:12 +03:00
|
|
|
|
description: Use llvm backend for code generation
|
2019-05-16 04:21:23 +03:00
|
|
|
|
manual: True
|
|
|
|
|
default: False
|
|
|
|
|
|
2018-06-24 20:26:40 +03:00
|
|
|
|
flag no-fusion
|
2020-02-20 12:38:12 +03:00
|
|
|
|
description: Disable rewrite rules for stream fusion
|
2018-06-24 20:26:40 +03:00
|
|
|
|
manual: True
|
|
|
|
|
default: False
|
|
|
|
|
|
2018-06-26 07:14:06 +03:00
|
|
|
|
flag streamk
|
|
|
|
|
description: Use CPS style streams when possible
|
|
|
|
|
manual: True
|
|
|
|
|
default: False
|
|
|
|
|
|
2017-10-18 09:21:38 +03:00
|
|
|
|
flag examples
|
2018-05-27 07:22:00 +03:00
|
|
|
|
description: Build including examples
|
2017-10-18 09:21:38 +03:00
|
|
|
|
manual: True
|
|
|
|
|
default: False
|
|
|
|
|
|
2017-12-01 12:04:46 +03:00
|
|
|
|
flag examples-sdl
|
2018-05-27 07:22:00 +03:00
|
|
|
|
description: Build including SDL examples
|
2017-12-01 12:04:46 +03:00
|
|
|
|
manual: True
|
|
|
|
|
default: False
|
|
|
|
|
|
2019-08-23 05:35:19 +03:00
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
-- Common stanzas
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
common compile-options
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
if flag(streamk)
|
|
|
|
|
cpp-options: -DUSE_STREAMK_ONLY
|
|
|
|
|
|
|
|
|
|
if flag(no-fusion)
|
|
|
|
|
cpp-options: -DDISABLE_FUSION
|
|
|
|
|
|
|
|
|
|
if flag(dev)
|
|
|
|
|
cpp-options: -DDEVBUILD
|
|
|
|
|
|
2019-08-27 18:32:44 +03:00
|
|
|
|
if flag(inspection)
|
|
|
|
|
cpp-options: -DINSPECTION
|
|
|
|
|
|
2019-08-23 05:35:19 +03:00
|
|
|
|
ghc-options: -Wall
|
|
|
|
|
|
|
|
|
|
if flag(has-llvm)
|
|
|
|
|
ghc-options: -fllvm
|
|
|
|
|
|
|
|
|
|
if flag(dev)
|
|
|
|
|
ghc-options: -Wmissed-specialisations
|
|
|
|
|
-Wall-missed-specialisations
|
2019-11-08 19:44:07 +03:00
|
|
|
|
|
|
|
|
|
if flag(dev) || flag(debug)
|
|
|
|
|
ghc-options: -fno-ignore-asserts
|
|
|
|
|
|
2019-08-23 05:35:19 +03:00
|
|
|
|
if impl(ghc >= 8.0)
|
|
|
|
|
ghc-options: -Wcompat
|
|
|
|
|
-Wunrecognised-warning-flags
|
|
|
|
|
-Widentities
|
|
|
|
|
-Wincomplete-record-updates
|
|
|
|
|
-Wincomplete-uni-patterns
|
|
|
|
|
-Wredundant-constraints
|
|
|
|
|
-Wnoncanonical-monad-instances
|
|
|
|
|
|
|
|
|
|
common optimization-options
|
|
|
|
|
ghc-options: -O2
|
2020-02-08 21:49:30 +03:00
|
|
|
|
-fdicts-strict
|
2019-10-31 16:48:41 +03:00
|
|
|
|
-fspec-constr-recursive=16
|
2019-08-23 05:35:19 +03:00
|
|
|
|
-fmax-worker-args=16
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
-- Compilation for coverage builds on CI machines takes too long without -O0
|
|
|
|
|
-- XXX we should use coverage flag for that, -O0 may take too long to run tests
|
|
|
|
|
-- in general.
|
|
|
|
|
common test-options
|
|
|
|
|
import: compile-options, threading-options
|
2020-01-25 16:19:33 +03:00
|
|
|
|
|
2019-08-23 05:35:19 +03:00
|
|
|
|
ghc-options: -O0
|
|
|
|
|
-fno-ignore-asserts
|
2020-04-24 21:49:47 +03:00
|
|
|
|
-- XXX we need -O for plugin to work
|
|
|
|
|
-- if flag(fusion-plugin) && !impl(ghcjs) && !impl(ghc < 8.6)
|
|
|
|
|
-- ghc-options: -fplugin Fusion.Plugin
|
|
|
|
|
-- build-depends:
|
|
|
|
|
-- fusion-plugin >= 0.2 && < 0.3
|
2019-08-23 05:35:19 +03:00
|
|
|
|
|
|
|
|
|
-- Used by maxrate test, benchmarks and executables
|
|
|
|
|
common exe-options
|
|
|
|
|
import: compile-options, optimization-options, threading-options
|
2020-02-11 21:29:09 +03:00
|
|
|
|
if flag(fusion-plugin) && !impl(ghcjs) && !impl(ghc < 8.6)
|
2020-01-25 16:19:33 +03:00
|
|
|
|
ghc-options: -fplugin Fusion.Plugin
|
|
|
|
|
build-depends:
|
2020-02-14 16:45:52 +03:00
|
|
|
|
fusion-plugin >= 0.2 && < 0.3
|
2019-08-23 05:35:19 +03:00
|
|
|
|
|
2018-05-03 22:57:22 +03:00
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
-- Library
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
|
2017-06-07 18:32:27 +03:00
|
|
|
|
library
|
2019-08-23 05:35:19 +03:00
|
|
|
|
import: lib-options
|
2019-01-11 00:51:02 +03:00
|
|
|
|
js-sources: jsbits/clock.js
|
2019-09-25 09:08:14 +03:00
|
|
|
|
include-dirs: src/Streamly/Internal/Data/Time
|
2019-12-09 14:49:47 +03:00
|
|
|
|
, src
|
2019-01-11 00:51:02 +03:00
|
|
|
|
if os(windows)
|
2019-09-25 09:08:14 +03:00
|
|
|
|
c-sources: src/Streamly/Internal/Data/Time/Windows.c
|
2019-01-11 00:51:02 +03:00
|
|
|
|
if os(darwin)
|
2019-09-25 09:08:14 +03:00
|
|
|
|
c-sources: src/Streamly/Internal/Data/Time/Darwin.c
|
2017-06-07 18:32:27 +03:00
|
|
|
|
hs-source-dirs: src
|
2019-09-25 14:45:29 +03:00
|
|
|
|
other-modules:
|
2020-01-20 15:46:43 +03:00
|
|
|
|
Streamly.Data.Array
|
|
|
|
|
, Streamly.Data.SmallArray
|
2020-01-23 13:02:19 +03:00
|
|
|
|
, Streamly.Data.Prim.Array
|
2020-01-20 15:46:43 +03:00
|
|
|
|
|
2019-05-15 16:52:53 +03:00
|
|
|
|
-- Memory storage
|
2019-09-25 14:45:29 +03:00
|
|
|
|
Streamly.Memory.Malloc
|
2019-08-06 02:01:23 +03:00
|
|
|
|
, Streamly.Memory.Ring
|
2019-05-15 16:52:53 +03:00
|
|
|
|
|
2019-06-13 21:13:49 +03:00
|
|
|
|
, Streamly.FileSystem.IOVec
|
|
|
|
|
, Streamly.FileSystem.FDIO
|
2019-07-30 12:02:30 +03:00
|
|
|
|
, Streamly.FileSystem.FD
|
|
|
|
|
|
2019-12-10 10:14:57 +03:00
|
|
|
|
exposed-modules:
|
|
|
|
|
Streamly.Prelude
|
2017-11-20 15:33:13 +03:00
|
|
|
|
, Streamly
|
2019-09-22 19:05:02 +03:00
|
|
|
|
, Streamly.Data.Fold
|
2019-11-04 19:11:49 +03:00
|
|
|
|
, Streamly.Data.Unfold
|
2019-11-03 13:52:29 +03:00
|
|
|
|
, Streamly.Data.Unicode.Stream
|
2019-05-29 21:49:30 +03:00
|
|
|
|
|
|
|
|
|
-- IO devices
|
2019-08-06 02:01:23 +03:00
|
|
|
|
, Streamly.Memory.Array
|
2019-05-30 06:01:24 +03:00
|
|
|
|
, Streamly.FileSystem.Handle
|
2019-05-20 03:47:45 +03:00
|
|
|
|
|
2018-06-22 01:28:16 +03:00
|
|
|
|
, Streamly.Tutorial
|
2019-09-24 13:02:02 +03:00
|
|
|
|
|
|
|
|
|
-- Internal modules
|
2020-02-18 21:25:28 +03:00
|
|
|
|
, Streamly.Internal.BaseCompat
|
2019-11-28 05:08:00 +03:00
|
|
|
|
, Streamly.Internal.Control.Monad
|
2019-09-25 08:46:57 +03:00
|
|
|
|
, Streamly.Internal.Data.Strict
|
2019-09-24 22:49:19 +03:00
|
|
|
|
, Streamly.Internal.Data.Atomics
|
2019-09-25 09:08:14 +03:00
|
|
|
|
, Streamly.Internal.Data.Time
|
|
|
|
|
, Streamly.Internal.Data.Time.Units
|
|
|
|
|
, Streamly.Internal.Data.Time.Clock
|
2019-09-25 08:30:44 +03:00
|
|
|
|
, Streamly.Internal.Data.SVar
|
2020-04-14 16:52:58 +03:00
|
|
|
|
|
|
|
|
|
-- Mutable data
|
|
|
|
|
, Streamly.Internal.Mutable.Prim.Var
|
|
|
|
|
|
|
|
|
|
-- Arrays
|
2019-11-30 00:49:45 +03:00
|
|
|
|
, Streamly.Internal.Data.Array
|
2020-02-06 14:30:15 +03:00
|
|
|
|
, Streamly.Internal.Data.Prim.Array.Types
|
2020-01-22 16:26:38 +03:00
|
|
|
|
, Streamly.Internal.Data.Prim.Array
|
2020-02-06 14:45:17 +03:00
|
|
|
|
, Streamly.Internal.Data.SmallArray.Types
|
2019-12-04 13:41:16 +03:00
|
|
|
|
, Streamly.Internal.Data.SmallArray
|
2019-09-24 21:05:01 +03:00
|
|
|
|
, Streamly.Internal.Memory.Array.Types
|
2019-09-29 14:18:44 +03:00
|
|
|
|
, Streamly.Internal.Memory.Array
|
2019-09-24 13:02:02 +03:00
|
|
|
|
, Streamly.Internal.Memory.ArrayStream
|
2020-04-14 16:52:58 +03:00
|
|
|
|
|
|
|
|
|
-- Folds
|
2019-09-22 19:05:02 +03:00
|
|
|
|
, Streamly.Internal.Data.Fold.Types
|
2019-09-22 22:02:54 +03:00
|
|
|
|
, Streamly.Internal.Data.Fold
|
2019-09-25 14:10:16 +03:00
|
|
|
|
, Streamly.Internal.Data.Sink.Types
|
|
|
|
|
, Streamly.Internal.Data.Sink
|
2019-12-10 10:14:57 +03:00
|
|
|
|
|
2020-04-14 16:52:58 +03:00
|
|
|
|
-- Parsers
|
|
|
|
|
, Streamly.Internal.Data.Zipper
|
|
|
|
|
, Streamly.Internal.Data.Parser.ParserK.Types
|
|
|
|
|
, Streamly.Internal.Data.Parser.ParserD.Types
|
|
|
|
|
, Streamly.Internal.Data.Parser.ParserD.Tee
|
|
|
|
|
, Streamly.Internal.Data.Parser.ParserD
|
2020-04-14 20:19:13 +03:00
|
|
|
|
, Streamly.Internal.Data.Parser
|
2020-04-14 16:52:58 +03:00
|
|
|
|
|
2019-12-10 10:14:57 +03:00
|
|
|
|
-- Base streams
|
|
|
|
|
, Streamly.Internal.Data.Stream.StreamK.Type
|
|
|
|
|
, Streamly.Internal.Data.Stream.StreamK
|
2019-12-23 10:11:00 +03:00
|
|
|
|
, Streamly.Internal.Data.Stream.StreamD.Type
|
2019-12-10 10:14:57 +03:00
|
|
|
|
, Streamly.Internal.Data.Stream.StreamD
|
2019-12-23 10:11:00 +03:00
|
|
|
|
, Streamly.Internal.Data.Stream.StreamDK.Type
|
|
|
|
|
, Streamly.Internal.Data.Stream.StreamDK
|
2019-12-10 10:14:57 +03:00
|
|
|
|
, Streamly.Internal.Data.Stream.Enumeration
|
|
|
|
|
, Streamly.Internal.Data.Stream.Prelude
|
|
|
|
|
|
|
|
|
|
-- Higher level streams
|
|
|
|
|
, Streamly.Internal.Data.Stream.SVar
|
|
|
|
|
, Streamly.Internal.Data.Stream.Serial
|
|
|
|
|
, Streamly.Internal.Data.Stream.Async
|
|
|
|
|
, Streamly.Internal.Data.Stream.Parallel
|
|
|
|
|
, Streamly.Internal.Data.Stream.Ahead
|
|
|
|
|
, Streamly.Internal.Data.Stream.Zip
|
|
|
|
|
, Streamly.Internal.Data.Stream.Combinators
|
2020-04-14 16:52:58 +03:00
|
|
|
|
, Streamly.Internal.Data.List
|
|
|
|
|
, Streamly.Internal.Prelude
|
|
|
|
|
|
|
|
|
|
-- Unfolds
|
2019-09-22 22:02:54 +03:00
|
|
|
|
, Streamly.Internal.Data.Unfold.Types
|
|
|
|
|
, Streamly.Internal.Data.Unfold
|
2020-04-14 16:52:58 +03:00
|
|
|
|
|
|
|
|
|
-- Pipes
|
2019-09-24 22:34:30 +03:00
|
|
|
|
, Streamly.Internal.Data.Pipe.Types
|
|
|
|
|
, Streamly.Internal.Data.Pipe
|
2020-04-14 16:52:58 +03:00
|
|
|
|
|
|
|
|
|
-- Filesystem
|
2019-09-24 21:53:07 +03:00
|
|
|
|
, Streamly.Internal.FileSystem.Handle
|
2019-11-08 15:27:54 +03:00
|
|
|
|
, Streamly.Internal.FileSystem.Dir
|
2019-09-24 22:09:58 +03:00
|
|
|
|
, Streamly.Internal.FileSystem.File
|
2020-04-14 16:52:58 +03:00
|
|
|
|
|
|
|
|
|
-- Text Processing
|
2019-11-03 13:52:29 +03:00
|
|
|
|
, Streamly.Internal.Data.Unicode.Stream
|
2019-11-04 00:04:31 +03:00
|
|
|
|
, Streamly.Internal.Data.Unicode.Char
|
|
|
|
|
, Streamly.Internal.Memory.Unicode.Array
|
2019-12-27 18:29:17 +03:00
|
|
|
|
|
2019-07-26 14:25:15 +03:00
|
|
|
|
if !impl(ghcjs)
|
2019-08-19 16:22:26 +03:00
|
|
|
|
exposed-modules:
|
2019-07-26 14:25:15 +03:00
|
|
|
|
Streamly.Network.Socket
|
2019-10-14 10:49:06 +03:00
|
|
|
|
, Streamly.Network.Inet.TCP
|
2017-11-21 18:06:01 +03:00
|
|
|
|
|
2019-09-30 20:55:43 +03:00
|
|
|
|
, Streamly.Internal.Network.Socket
|
2019-10-14 10:49:06 +03:00
|
|
|
|
, Streamly.Internal.Network.Inet.TCP
|
2019-09-30 16:42:58 +03:00
|
|
|
|
|
2020-01-06 10:36:57 +03:00
|
|
|
|
build-depends:
|
|
|
|
|
-- Core libraries shipped with ghc, the min and max
|
|
|
|
|
-- constraints of these libraries should match with
|
|
|
|
|
-- the GHC versions we support
|
|
|
|
|
base >= 4.8 && < 5
|
|
|
|
|
, containers >= 0.5 && < 0.7
|
2019-06-15 21:31:33 +03:00
|
|
|
|
, deepseq >= 1.4.1 && < 1.5
|
2020-02-06 16:01:17 +03:00
|
|
|
|
, directory >= 1.2.2 && < 1.4
|
2020-02-07 15:23:31 +03:00
|
|
|
|
, exceptions >= 0.8 && < 0.11
|
2020-03-30 10:20:19 +03:00
|
|
|
|
, ghc-prim >= 0.2 && < 0.7
|
2020-02-07 15:23:31 +03:00
|
|
|
|
, mtl >= 2.2 && < 3
|
|
|
|
|
, primitive >= 0.5.4 && < 0.8
|
2020-01-06 10:36:57 +03:00
|
|
|
|
, transformers >= 0.4 && < 0.6
|
|
|
|
|
|
2020-02-07 15:23:31 +03:00
|
|
|
|
, heaps >= 0.3 && < 0.4
|
2018-05-27 06:25:03 +03:00
|
|
|
|
|
|
|
|
|
-- concurrency
|
|
|
|
|
, atomic-primops >= 0.8 && < 0.9
|
2018-05-17 08:52:29 +03:00
|
|
|
|
, lockfree-queue >= 0.2.3 && < 0.3
|
|
|
|
|
|
|
|
|
|
-- transfomers
|
2017-08-31 03:41:46 +03:00
|
|
|
|
, monad-control >= 1.0 && < 2
|
|
|
|
|
, transformers-base >= 0.4 && < 0.5
|
2017-10-20 23:19:14 +03:00
|
|
|
|
|
2020-02-14 16:45:52 +03:00
|
|
|
|
, fusion-plugin-types >= 0.1 && < 0.2
|
2020-01-24 13:57:17 +03:00
|
|
|
|
|
2019-07-26 14:25:15 +03:00
|
|
|
|
if !impl(ghcjs)
|
|
|
|
|
build-depends:
|
2020-01-27 23:17:05 +03:00
|
|
|
|
network >= 2.6 && < 4
|
2017-09-08 20:10:23 +03:00
|
|
|
|
if impl(ghc < 8.0)
|
|
|
|
|
build-depends:
|
2020-01-27 23:17:05 +03:00
|
|
|
|
semigroups >= 0.18 && < 0.19
|
|
|
|
|
|
|
|
|
|
if flag(inspection)
|
2020-04-20 14:33:45 +03:00
|
|
|
|
build-depends: template-haskell >= 2.14 && < 2.17
|
2020-01-27 23:17:05 +03:00
|
|
|
|
, inspection-testing >= 0.4 && < 0.5
|
2017-06-07 18:32:27 +03:00
|
|
|
|
|
2019-12-17 10:27:19 +03:00
|
|
|
|
-- 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
|
|
|
|
|
|
2018-05-03 22:57:22 +03:00
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
-- Test suites
|
|
|
|
|
-------------------------------------------------------------------------------
|
2017-10-20 23:19:14 +03:00
|
|
|
|
|
2017-06-30 23:05:49 +03:00
|
|
|
|
test-suite test
|
2019-08-23 05:35:19 +03:00
|
|
|
|
import: test-options
|
2017-06-30 23:05:49 +03:00
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
main-is: Main.hs
|
2019-01-10 03:06:23 +03:00
|
|
|
|
js-sources: jsbits/clock.js
|
2017-06-30 23:05:49 +03:00
|
|
|
|
hs-source-dirs: test
|
|
|
|
|
build-depends:
|
2017-11-20 15:33:13 +03:00
|
|
|
|
streamly
|
2017-08-31 03:41:46 +03:00
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
, hspec >= 2.0 && < 3
|
2020-01-06 10:36:57 +03:00
|
|
|
|
, containers >= 0.5 && < 0.7
|
2018-04-22 20:27:31 +03:00
|
|
|
|
, transformers >= 0.4 && < 0.6
|
|
|
|
|
, mtl >= 2.2 && < 3
|
|
|
|
|
, exceptions >= 0.8 && < 0.11
|
2017-06-30 23:05:49 +03:00
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
|
2019-12-11 15:01:02 +03:00
|
|
|
|
test-suite internal-prelude-test
|
|
|
|
|
import: test-options
|
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
main-is: Streamly/Test/Internal/Prelude.hs
|
|
|
|
|
js-sources: jsbits/clock.js
|
|
|
|
|
hs-source-dirs: test
|
|
|
|
|
build-depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
2020-04-13 01:55:27 +03:00
|
|
|
|
, QuickCheck >= 2.10 && < 2.15
|
2019-12-11 15:01:02 +03:00
|
|
|
|
, hspec >= 2.0 && < 3
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
|
2019-07-29 01:46:23 +03:00
|
|
|
|
test-suite pure-streams-base
|
2019-08-23 05:35:19 +03:00
|
|
|
|
import: test-options
|
2019-07-29 01:46:23 +03:00
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
main-is: PureStreams.hs
|
|
|
|
|
hs-source-dirs: test
|
|
|
|
|
build-depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
, hspec >= 2.0 && < 3
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
|
2019-09-25 22:35:15 +03:00
|
|
|
|
test-suite pure-streams-streamly
|
|
|
|
|
import: test-options
|
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
main-is: PureStreams.hs
|
|
|
|
|
hs-source-dirs: test
|
|
|
|
|
cpp-options: -DUSE_STREAMLY_LIST
|
|
|
|
|
build-depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
, hspec >= 2.0 && < 3
|
|
|
|
|
default-language: Haskell2010
|
2018-11-17 05:51:17 +03:00
|
|
|
|
|
2018-04-14 12:26:02 +03:00
|
|
|
|
test-suite properties
|
2019-08-23 05:35:19 +03:00
|
|
|
|
import: test-options
|
2018-04-14 12:26:02 +03:00
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
main-is: Prop.hs
|
2019-01-10 03:06:23 +03:00
|
|
|
|
js-sources: jsbits/clock.js
|
2018-04-14 12:26:02 +03:00
|
|
|
|
hs-source-dirs: test
|
|
|
|
|
build-depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
2020-04-13 01:55:27 +03:00
|
|
|
|
, QuickCheck >= 2.10 && < 2.15
|
2018-04-14 12:26:02 +03:00
|
|
|
|
, hspec >= 2.0 && < 3
|
2018-10-12 15:59:43 +03:00
|
|
|
|
if impl(ghc < 8.0)
|
|
|
|
|
build-depends:
|
|
|
|
|
transformers >= 0.4 && < 0.6
|
2018-04-14 12:26:02 +03:00
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
|
2019-05-10 11:06:02 +03:00
|
|
|
|
test-suite array-test
|
2019-08-23 05:35:19 +03:00
|
|
|
|
import: test-options
|
2019-05-06 14:54:01 +03:00
|
|
|
|
type: exitcode-stdio-1.0
|
2019-12-11 14:04:30 +03:00
|
|
|
|
main-is: Streamly/Test/Array.hs
|
2019-05-06 14:54:01 +03:00
|
|
|
|
js-sources: jsbits/clock.js
|
|
|
|
|
hs-source-dirs: test
|
2019-12-11 14:04:30 +03:00
|
|
|
|
cpp-options: -DTEST_ARRAY
|
2019-06-04 14:24:21 +03:00
|
|
|
|
build-depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
2020-04-13 01:55:27 +03:00
|
|
|
|
, QuickCheck >= 2.10 && < 2.15
|
2019-06-04 14:24:21 +03:00
|
|
|
|
, hspec >= 2.0 && < 3
|
|
|
|
|
if impl(ghc < 8.0)
|
|
|
|
|
build-depends:
|
|
|
|
|
transformers >= 0.4 && < 0.6
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
|
2019-12-05 15:40:17 +03:00
|
|
|
|
test-suite internal-data-fold-test
|
|
|
|
|
import: test-options
|
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
main-is: Streamly/Test/Internal/Data/Fold.hs
|
|
|
|
|
js-sources: jsbits/clock.js
|
|
|
|
|
hs-source-dirs: test
|
|
|
|
|
build-depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
, hspec >= 2.0 && < 3
|
2020-04-13 01:55:27 +03:00
|
|
|
|
, QuickCheck >= 2.10 && < 2.15
|
2019-12-05 15:40:17 +03:00
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
|
Add tests for Internal.Data.Parser.
- Tests are added for the functions: yield, yieldM, die, dieM, any,
all, fromFold, peek, eof, satisfy, take, takeEQ, takeGE, takeWhile,
takeWhile1, lookAhead, sliceSepBy.
2020-05-01 20:54:08 +03:00
|
|
|
|
test-suite internal-data-parser-test
|
|
|
|
|
import: test-options
|
|
|
|
|
ghc-options: -O2
|
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
main-is: Streamly/Test/Internal/Data/Parser.hs
|
|
|
|
|
js-sources: jsbits/clock.js
|
|
|
|
|
hs-source-dirs: test
|
|
|
|
|
build-depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
, hspec >= 2.0 && < 3
|
|
|
|
|
, QuickCheck >= 2.10 && < 2.15
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
|
2019-12-11 14:04:30 +03:00
|
|
|
|
test-suite data-array-test
|
2019-11-30 04:04:47 +03:00
|
|
|
|
import: test-options
|
|
|
|
|
type: exitcode-stdio-1.0
|
2019-12-11 14:04:30 +03:00
|
|
|
|
main-is: Streamly/Test/Array.hs
|
2019-11-30 04:04:47 +03:00
|
|
|
|
js-sources: jsbits/clock.js
|
|
|
|
|
hs-source-dirs: test
|
|
|
|
|
build-depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
2020-04-13 01:55:27 +03:00
|
|
|
|
, QuickCheck >= 2.10 && < 2.15
|
2019-11-30 04:04:47 +03:00
|
|
|
|
, hspec >= 2.0 && < 3
|
|
|
|
|
if impl(ghc < 8.0)
|
|
|
|
|
build-depends:
|
|
|
|
|
transformers >= 0.4 && < 0.6
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
|
2019-12-04 13:54:24 +03:00
|
|
|
|
test-suite smallarray-test
|
|
|
|
|
import: test-options
|
|
|
|
|
type: exitcode-stdio-1.0
|
2019-12-11 14:04:30 +03:00
|
|
|
|
main-is: Streamly/Test/Array.hs
|
2019-12-04 13:54:24 +03:00
|
|
|
|
js-sources: jsbits/clock.js
|
|
|
|
|
hs-source-dirs: test
|
2019-12-11 14:04:30 +03:00
|
|
|
|
cpp-options: -DTEST_SMALL_ARRAY
|
2019-12-04 13:54:24 +03:00
|
|
|
|
build-depends:
|
|
|
|
|
streamly
|
2020-01-20 12:30:46 +03:00
|
|
|
|
, base >= 4.8 && < 5
|
2020-04-13 01:55:27 +03:00
|
|
|
|
, QuickCheck >= 2.10 && < 2.15
|
2020-01-20 12:30:46 +03:00
|
|
|
|
, hspec >= 2.0 && < 3
|
|
|
|
|
if impl(ghc < 8.0)
|
|
|
|
|
build-depends:
|
|
|
|
|
transformers >= 0.4 && < 0.6
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
|
|
|
|
|
test-suite primarray-test
|
|
|
|
|
import: test-options
|
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
main-is: Streamly/Test/Array.hs
|
|
|
|
|
js-sources: jsbits/clock.js
|
|
|
|
|
hs-source-dirs: test
|
|
|
|
|
cpp-options: -DTEST_PRIM_ARRAY
|
|
|
|
|
build-depends:
|
|
|
|
|
streamly
|
2019-12-04 13:54:24 +03:00
|
|
|
|
, base >= 4.8 && < 5
|
2020-04-13 01:55:27 +03:00
|
|
|
|
, QuickCheck >= 2.10 && < 2.15
|
2019-12-04 13:54:24 +03:00
|
|
|
|
, hspec >= 2.0 && < 3
|
|
|
|
|
if impl(ghc < 8.0)
|
|
|
|
|
build-depends:
|
|
|
|
|
transformers >= 0.4 && < 0.6
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
|
2019-06-04 14:24:21 +03:00
|
|
|
|
test-suite string-test
|
2019-08-23 05:35:19 +03:00
|
|
|
|
import: test-options
|
2019-06-04 14:24:21 +03:00
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
main-is: String.hs
|
|
|
|
|
js-sources: jsbits/clock.js
|
|
|
|
|
hs-source-dirs: test
|
2019-05-06 14:54:01 +03:00
|
|
|
|
build-depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
2020-04-13 01:55:27 +03:00
|
|
|
|
, QuickCheck >= 2.10 && < 2.15
|
2019-05-06 14:54:01 +03:00
|
|
|
|
, hspec >= 2.0 && < 3
|
|
|
|
|
if impl(ghc < 8.0)
|
|
|
|
|
build-depends:
|
|
|
|
|
transformers >= 0.4 && < 0.6
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
|
2018-07-08 04:53:24 +03:00
|
|
|
|
test-suite maxrate
|
2019-08-23 05:35:19 +03:00
|
|
|
|
import: exe-options
|
2018-07-08 04:53:24 +03:00
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
main-is: MaxRate.hs
|
2019-01-10 03:06:23 +03:00
|
|
|
|
js-sources: jsbits/clock.js
|
2018-07-08 04:53:24 +03:00
|
|
|
|
hs-source-dirs: test
|
|
|
|
|
if flag(dev)
|
|
|
|
|
buildable: True
|
|
|
|
|
build-Depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
, hspec >= 2.0 && < 3
|
2018-11-06 02:06:41 +03:00
|
|
|
|
, random >= 1.0.0 && < 2
|
2018-07-08 04:53:24 +03:00
|
|
|
|
else
|
|
|
|
|
buildable: False
|
|
|
|
|
|
2018-05-03 22:57:22 +03:00
|
|
|
|
test-suite loops
|
2019-08-23 05:35:19 +03:00
|
|
|
|
import: test-options
|
2018-05-03 22:57:22 +03:00
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
main-is: loops.hs
|
|
|
|
|
hs-source-dirs: test
|
|
|
|
|
build-Depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
|
|
|
|
|
test-suite nested-loops
|
2019-08-23 05:35:19 +03:00
|
|
|
|
import: test-options
|
2018-05-03 22:57:22 +03:00
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
main-is: nested-loops.hs
|
|
|
|
|
hs-source-dirs: test
|
|
|
|
|
build-Depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
2018-11-06 02:06:41 +03:00
|
|
|
|
, random >= 1.0.0 && < 2
|
2018-05-03 22:57:22 +03:00
|
|
|
|
|
|
|
|
|
test-suite parallel-loops
|
2019-08-23 05:35:19 +03:00
|
|
|
|
import: test-options
|
2018-05-03 22:57:22 +03:00
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
main-is: parallel-loops.hs
|
|
|
|
|
hs-source-dirs: test
|
|
|
|
|
build-Depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
2018-11-06 02:06:41 +03:00
|
|
|
|
, random >= 1.0.0 && < 2
|
2018-05-03 22:57:22 +03:00
|
|
|
|
|
2020-02-07 19:42:59 +03:00
|
|
|
|
test-suite version-bounds
|
|
|
|
|
import: test-options
|
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
main-is: version-bounds.hs
|
|
|
|
|
hs-source-dirs: test
|
|
|
|
|
build-Depends:
|
|
|
|
|
streamly
|
|
|
|
|
, ghc
|
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
|
2018-05-03 22:57:22 +03:00
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
-- Examples
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
executable SearchQuery
|
2019-08-23 05:35:19 +03:00
|
|
|
|
import: exe-options
|
2018-05-03 22:57:22 +03:00
|
|
|
|
main-is: SearchQuery.hs
|
2017-10-18 09:21:38 +03:00
|
|
|
|
hs-source-dirs: examples
|
2019-01-10 03:06:23 +03:00
|
|
|
|
if (flag(examples) || flag(examples-sdl)) && !impl(ghcjs)
|
2017-10-18 09:21:38 +03:00
|
|
|
|
buildable: True
|
2020-03-04 12:49:09 +03:00
|
|
|
|
build-depends:
|
2017-11-20 15:33:13 +03:00
|
|
|
|
streamly
|
2020-03-03 15:46:20 +03:00
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
, http-conduit >= 2.2.2 && < 2.4
|
|
|
|
|
if impl(ghc < 8.0)
|
2020-03-04 12:49:09 +03:00
|
|
|
|
build-depends:
|
|
|
|
|
unliftio-core < 0.2
|
2017-10-18 09:21:38 +03:00
|
|
|
|
else
|
|
|
|
|
buildable: False
|
|
|
|
|
|
2018-05-03 22:57:22 +03:00
|
|
|
|
executable ListDir
|
2019-08-23 05:35:19 +03:00
|
|
|
|
import: exe-options
|
2018-05-03 22:57:22 +03:00
|
|
|
|
main-is: ListDir.hs
|
2017-10-18 09:21:38 +03:00
|
|
|
|
hs-source-dirs: examples
|
2018-04-17 15:19:35 +03:00
|
|
|
|
if flag(examples) || flag(examples-sdl)
|
2017-10-18 09:21:38 +03:00
|
|
|
|
buildable: True
|
|
|
|
|
build-Depends:
|
2017-11-20 15:33:13 +03:00
|
|
|
|
streamly
|
2018-05-03 22:57:22 +03:00
|
|
|
|
, base >= 4.8 && < 5
|
2018-05-04 23:37:35 +03:00
|
|
|
|
if impl(ghc < 8.0)
|
|
|
|
|
build-depends:
|
|
|
|
|
transformers >= 0.4 && < 0.6
|
2017-10-18 09:21:38 +03:00
|
|
|
|
else
|
|
|
|
|
buildable: False
|
|
|
|
|
|
2018-05-03 22:57:22 +03:00
|
|
|
|
executable MergeSort
|
2019-08-23 05:35:19 +03:00
|
|
|
|
import: exe-options
|
2018-05-03 22:57:22 +03:00
|
|
|
|
main-is: MergeSort.hs
|
2017-10-18 09:21:38 +03:00
|
|
|
|
hs-source-dirs: examples
|
2018-04-17 15:19:35 +03:00
|
|
|
|
if flag(examples) || flag(examples-sdl)
|
2017-10-18 09:21:38 +03:00
|
|
|
|
buildable: True
|
|
|
|
|
build-Depends:
|
2017-11-20 15:33:13 +03:00
|
|
|
|
streamly
|
2017-12-04 13:39:36 +03:00
|
|
|
|
, base >= 4.8 && < 5
|
2018-11-06 02:06:41 +03:00
|
|
|
|
, random >= 1.0.0 && < 2
|
2018-05-03 22:57:22 +03:00
|
|
|
|
else
|
|
|
|
|
buildable: False
|
|
|
|
|
|
|
|
|
|
executable AcidRain
|
2019-08-23 05:35:19 +03:00
|
|
|
|
import: exe-options
|
2018-05-03 22:57:22 +03:00
|
|
|
|
main-is: AcidRain.hs
|
|
|
|
|
hs-source-dirs: examples
|
|
|
|
|
if flag(examples) || flag(examples-sdl)
|
|
|
|
|
buildable: True
|
|
|
|
|
build-Depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
, mtl >= 2.2 && < 3
|
2018-05-03 23:13:07 +03:00
|
|
|
|
if impl(ghc < 8.0)
|
|
|
|
|
build-depends:
|
|
|
|
|
semigroups >= 0.18 && < 0.19
|
2018-05-04 23:37:35 +03:00
|
|
|
|
, transformers >= 0.4 && < 0.6
|
2018-05-03 22:57:22 +03:00
|
|
|
|
else
|
|
|
|
|
buildable: False
|
|
|
|
|
|
|
|
|
|
executable CirclingSquare
|
2019-08-23 05:35:19 +03:00
|
|
|
|
import: exe-options
|
2018-05-03 22:57:22 +03:00
|
|
|
|
main-is: CirclingSquare.hs
|
|
|
|
|
hs-source-dirs: examples
|
|
|
|
|
if flag(examples-sdl)
|
|
|
|
|
buildable: True
|
|
|
|
|
build-Depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
, SDL >= 0.6.5 && < 0.7
|
2017-10-18 09:21:38 +03:00
|
|
|
|
else
|
|
|
|
|
buildable: False
|
2018-10-26 15:45:14 +03:00
|
|
|
|
|
|
|
|
|
executable ControlFlow
|
2019-08-23 05:35:19 +03:00
|
|
|
|
import: exe-options
|
2018-10-26 15:45:14 +03:00
|
|
|
|
main-is: ControlFlow.hs
|
|
|
|
|
hs-source-dirs: examples
|
|
|
|
|
if flag(examples) || flag(examples-sdl)
|
|
|
|
|
buildable: True
|
|
|
|
|
build-Depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
, exceptions >= 0.8 && < 0.11
|
|
|
|
|
, transformers >= 0.4 && < 0.6
|
|
|
|
|
, transformers-base >= 0.4 && < 0.5
|
|
|
|
|
if impl(ghc < 8.0)
|
|
|
|
|
build-depends:
|
|
|
|
|
semigroups >= 0.18 && < 0.19
|
|
|
|
|
else
|
|
|
|
|
buildable: False
|
2019-05-22 04:38:34 +03:00
|
|
|
|
|
2019-05-31 07:15:22 +03:00
|
|
|
|
executable HandleIO
|
2019-08-23 05:35:19 +03:00
|
|
|
|
import: exe-options
|
2019-05-31 07:15:22 +03:00
|
|
|
|
main-is: HandleIO.hs
|
2019-05-22 04:38:34 +03:00
|
|
|
|
hs-source-dirs: examples
|
|
|
|
|
if flag(examples) || flag(examples-sdl)
|
|
|
|
|
buildable: True
|
|
|
|
|
build-Depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
else
|
|
|
|
|
buildable: False
|
2019-05-31 07:19:32 +03:00
|
|
|
|
|
2019-06-18 18:21:21 +03:00
|
|
|
|
executable FileIOExamples
|
2019-08-23 05:35:19 +03:00
|
|
|
|
import: exe-options
|
2019-06-18 18:21:21 +03:00
|
|
|
|
main-is: FileIOExamples.hs
|
2019-05-31 07:19:32 +03:00
|
|
|
|
hs-source-dirs: examples
|
|
|
|
|
if flag(examples) || flag(examples-sdl)
|
2019-09-25 23:05:29 +03:00
|
|
|
|
buildable: True
|
2019-05-31 07:19:32 +03:00
|
|
|
|
build-Depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
else
|
|
|
|
|
buildable: False
|
2019-05-31 12:31:14 +03:00
|
|
|
|
|
|
|
|
|
executable EchoServer
|
2019-08-23 05:35:19 +03:00
|
|
|
|
import: exe-options
|
2019-05-31 12:31:14 +03:00
|
|
|
|
main-is: EchoServer.hs
|
|
|
|
|
hs-source-dirs: examples
|
2019-07-29 15:22:22 +03:00
|
|
|
|
if (flag(examples) || flag(examples-sdl)) && !impl(ghcjs)
|
2019-05-31 12:31:14 +03:00
|
|
|
|
buildable: True
|
|
|
|
|
build-Depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
2019-10-13 23:23:16 +03:00
|
|
|
|
, network >= 2.6 && < 4
|
2019-10-14 16:23:34 +03:00
|
|
|
|
if impl(ghc < 8.0)
|
|
|
|
|
build-depends:
|
|
|
|
|
transformers >= 0.4 && < 0.6
|
2019-05-31 12:31:14 +03:00
|
|
|
|
else
|
|
|
|
|
buildable: False
|
|
|
|
|
|
|
|
|
|
executable FileSinkServer
|
2019-08-23 05:35:19 +03:00
|
|
|
|
import: exe-options
|
2019-05-31 12:31:14 +03:00
|
|
|
|
main-is: FileSinkServer.hs
|
|
|
|
|
hs-source-dirs: examples
|
2019-07-29 15:22:22 +03:00
|
|
|
|
if (flag(examples) || flag(examples-sdl)) && !impl(ghcjs)
|
2019-05-31 12:31:14 +03:00
|
|
|
|
buildable: True
|
|
|
|
|
build-Depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
2019-10-12 09:52:34 +03:00
|
|
|
|
, network >= 2.6 && < 4
|
2019-10-14 16:23:34 +03:00
|
|
|
|
if impl(ghc < 8.0)
|
|
|
|
|
build-depends:
|
|
|
|
|
transformers >= 0.4 && < 0.6
|
2019-05-31 12:31:14 +03:00
|
|
|
|
else
|
|
|
|
|
buildable: False
|
|
|
|
|
|
|
|
|
|
executable FromFileClient
|
2019-08-23 05:35:19 +03:00
|
|
|
|
import: exe-options
|
2019-05-31 12:31:14 +03:00
|
|
|
|
main-is: FromFileClient.hs
|
|
|
|
|
hs-source-dirs: examples
|
2019-07-29 15:22:22 +03:00
|
|
|
|
if (flag(examples) || flag(examples-sdl)) && !impl(ghcjs)
|
2019-05-31 12:31:14 +03:00
|
|
|
|
buildable: True
|
|
|
|
|
build-Depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
else
|
|
|
|
|
buildable: False
|
2019-09-05 22:02:54 +03:00
|
|
|
|
|
|
|
|
|
executable WordClassifier
|
|
|
|
|
import: exe-options
|
|
|
|
|
main-is: WordClassifier.hs
|
|
|
|
|
hs-source-dirs: examples
|
|
|
|
|
if (flag(examples) || flag(examples-sdl)) && !impl(ghcjs)
|
|
|
|
|
buildable: True
|
|
|
|
|
build-Depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
2019-11-14 11:55:32 +03:00
|
|
|
|
, hashable >= 1.2 && < 1.4
|
2019-09-05 22:02:54 +03:00
|
|
|
|
, unordered-containers >= 0.2 && < 0.3
|
|
|
|
|
else
|
|
|
|
|
buildable: False
|
2019-10-23 18:44:10 +03:00
|
|
|
|
|
|
|
|
|
executable WordCount
|
|
|
|
|
import: exe-options
|
|
|
|
|
main-is: WordCount.hs
|
|
|
|
|
hs-source-dirs: examples
|
|
|
|
|
if (flag(examples) || flag(examples-sdl)) && !impl(ghcjs)
|
|
|
|
|
buildable: True
|
|
|
|
|
build-Depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
, vector >= 0.12 && < 0.13
|
|
|
|
|
else
|
|
|
|
|
buildable: False
|
|
|
|
|
|
|
|
|
|
executable CamelCase
|
|
|
|
|
import: exe-options
|
|
|
|
|
main-is: CamelCase.hs
|
|
|
|
|
hs-source-dirs: examples
|
|
|
|
|
if (flag(examples) || flag(examples-sdl)) && !impl(ghcjs)
|
|
|
|
|
buildable: True
|
|
|
|
|
build-Depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
else
|
|
|
|
|
buildable: False
|
2020-06-03 17:07:12 +03:00
|
|
|
|
|
|
|
|
|
executable Rate
|
|
|
|
|
import: exe-options
|
|
|
|
|
main-is: Rate.hs
|
|
|
|
|
hs-source-dirs: examples
|
|
|
|
|
if (flag(examples) || flag(examples-sdl)) && !impl(ghcjs)
|
|
|
|
|
buildable: True
|
|
|
|
|
build-Depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
else
|
|
|
|
|
buildable: False
|
2020-06-03 17:49:12 +03:00
|
|
|
|
|
|
|
|
|
executable Split
|
|
|
|
|
import: exe-options
|
|
|
|
|
main-is: Split.hs
|
|
|
|
|
hs-source-dirs: examples
|
|
|
|
|
if (flag(examples) || flag(examples-sdl)) && !impl(ghcjs)
|
|
|
|
|
buildable: True
|
|
|
|
|
build-Depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
, mtl >= 2.2 && < 3
|
|
|
|
|
if impl(ghc < 8.0)
|
|
|
|
|
build-depends:
|
|
|
|
|
transformers >= 0.4 && < 0.6
|
|
|
|
|
else
|
|
|
|
|
buildable: False
|