2017-11-20 15:33:13 +03:00
|
|
|
|
name: streamly
|
2019-03-27 22:43:46 +03:00
|
|
|
|
version: 0.6.1
|
2017-10-20 07:06:00 +03:00
|
|
|
|
synopsis: Beautiful Streaming, Concurrent and Reactive Composition
|
2017-12-02 18:39:06 +03:00
|
|
|
|
description:
|
2018-06-14 23:38:06 +03:00
|
|
|
|
Streamly, short for streaming concurrently, provides monadic streams, with a
|
|
|
|
|
simple API, almost identical to standard lists, and an in-built support for
|
|
|
|
|
concurrency. By using stream-style combinators on stream composition,
|
|
|
|
|
streams can be generated, merged, chained, mapped, zipped, and consumed
|
|
|
|
|
concurrently – providing a generalized high level programming framework
|
|
|
|
|
unifying streaming and concurrency. Controlled concurrency allows even
|
|
|
|
|
infinite streams to be evaluated concurrently. Concurrency is auto scaled
|
|
|
|
|
based on feedback from the stream consumer. The programmer does not have to
|
|
|
|
|
be aware of threads, locking or synchronization to write scalable concurrent
|
|
|
|
|
programs.
|
2017-10-20 07:06:00 +03:00
|
|
|
|
.
|
2018-06-14 23:38:06 +03:00
|
|
|
|
The basic streaming functionality of streamly is equivalent to that provided by
|
|
|
|
|
streaming libraries like
|
|
|
|
|
<https://hackage.haskell.org/package/streaming streaming>,
|
|
|
|
|
<https://hackage.haskell.org/package/pipes pipes>, and
|
|
|
|
|
<https://hackage.haskell.org/package/conduit conduit>.
|
|
|
|
|
In addition to providing streaming functionality, streamly subsumes the
|
|
|
|
|
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
|
|
|
|
|
programming library <https://hackage.haskell.org/package/logict logict>. On
|
|
|
|
|
the concurrency side, it subsumes the functionality of the
|
|
|
|
|
<https://hackage.haskell.org/package/async async> package. Because it
|
|
|
|
|
supports streaming with concurrency we can write FRP applications similar in
|
|
|
|
|
concept to <https://hackage.haskell.org/package/Yampa Yampa> or
|
|
|
|
|
<https://hackage.haskell.org/package/reflex reflex>.
|
|
|
|
|
.
|
2018-06-14 23:38:06 +03:00
|
|
|
|
For file IO, currently the library provides only one API to stream the lines
|
|
|
|
|
in the file as Strings. Future versions will provide better streaming file
|
2018-10-22 12:08:24 +03:00
|
|
|
|
IO options. Streamly interoperates with the popular streaming libraries, see
|
|
|
|
|
the interoperation section in "Streamly.Tutorial".
|
2018-06-14 23:38:06 +03:00
|
|
|
|
.
|
|
|
|
|
Why use streamly?
|
|
|
|
|
.
|
|
|
|
|
* /Simplicity/: Simple list like streaming API, if you know how to use lists
|
|
|
|
|
then you know how to use streamly. This library is built with simplicity
|
|
|
|
|
and ease of use as a primary design goal.
|
|
|
|
|
* /Concurrency/: Simple, powerful, and scalable concurrency. Concurrency is
|
|
|
|
|
built-in, and not intrusive, concurrent programs are written exactly the
|
|
|
|
|
same way as non-concurrent ones.
|
|
|
|
|
* /Generality/: Unifies functionality provided by several disparate packages
|
|
|
|
|
(streaming, concurrency, list transformer, logic programming, reactive
|
|
|
|
|
programming) in a concise API.
|
2018-07-11 17:40:51 +03:00
|
|
|
|
* /Performance/: Streamly is designed for high performance.
|
|
|
|
|
It employs stream fusion optimizations for best possible performance.
|
|
|
|
|
Serial peformance is equivalent to the venerable `vector` library in most
|
|
|
|
|
cases and even better in some cases. Concurrent performance is unbeatable.
|
|
|
|
|
See
|
2018-06-14 23:38:06 +03:00
|
|
|
|
<https://github.com/composewell/streaming-benchmarks streaming-benchmarks>
|
|
|
|
|
for a comparison of popular streaming libraries on micro-benchmarks.
|
2018-05-04 21:53:03 +03:00
|
|
|
|
.
|
|
|
|
|
Where to find more information:
|
|
|
|
|
.
|
2018-10-22 11:05:54 +03:00
|
|
|
|
* /Quick Overview/: <src/README.md README file> in the package
|
|
|
|
|
* /Detailed Tutorial/: "Streamly.Tutorial" module in the haddock documentation
|
|
|
|
|
* /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>
|
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
|
2017-09-04 13:26:05 +03:00
|
|
|
|
license: BSD3
|
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-03-27 21:25:33 +03:00
|
|
|
|
, GHC==8.6.4
|
2017-09-04 13:19:11 +03:00
|
|
|
|
author: Harendra Kumar
|
2017-06-07 18:32:27 +03:00
|
|
|
|
maintainer: harendra.kumar@gmail.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
|
|
|
|
cabal-version: >= 1.10
|
|
|
|
|
|
2017-12-04 13:39:36 +03:00
|
|
|
|
extra-source-files:
|
|
|
|
|
Changelog.md
|
|
|
|
|
README.md
|
2018-10-22 11:05:54 +03:00
|
|
|
|
docs/streamly-vs-async.md
|
|
|
|
|
docs/transformers.md
|
2018-05-03 22:57:22 +03:00
|
|
|
|
bench.sh
|
2017-12-04 13:39:36 +03:00
|
|
|
|
stack-7.10.yaml
|
2018-05-24 15:05:18 +03:00
|
|
|
|
stack-8.0.yaml
|
2017-12-04 13:39:36 +03:00
|
|
|
|
stack.yaml
|
2018-06-22 01:52:17 +03:00
|
|
|
|
src/Streamly/Streams/Instances.hs
|
2018-10-27 23:19:44 +03:00
|
|
|
|
src/Streamly/Streams/inline.hs
|
2019-01-11 00:51:02 +03:00
|
|
|
|
configure.ac
|
|
|
|
|
configure
|
|
|
|
|
src/Streamly/Time/config.h.in
|
|
|
|
|
|
|
|
|
|
extra-tmp-files:
|
|
|
|
|
config.log
|
|
|
|
|
config.status
|
|
|
|
|
autom4te.cache
|
|
|
|
|
src/Streamly/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
|
|
|
|
|
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-03-20 13:07:54 +03:00
|
|
|
|
flag no-charts
|
|
|
|
|
description: Disable chart generation
|
|
|
|
|
manual: True
|
|
|
|
|
default: False
|
|
|
|
|
|
2018-06-24 20:26:40 +03:00
|
|
|
|
flag no-fusion
|
|
|
|
|
description: Disable rewrite rules
|
|
|
|
|
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
|
|
|
|
|
|
2018-05-03 22:57:22 +03:00
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
-- Library
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
|
2017-06-07 18:32:27 +03:00
|
|
|
|
library
|
2019-01-11 00:51:02 +03:00
|
|
|
|
js-sources: jsbits/clock.js
|
|
|
|
|
include-dirs: src/Streamly/Time
|
|
|
|
|
, src/Streamly/Streams
|
|
|
|
|
if os(windows)
|
|
|
|
|
c-sources: src/Streamly/Time/Windows.c
|
|
|
|
|
if os(darwin)
|
|
|
|
|
c-sources: src/Streamly/Time/Darwin.c
|
2017-06-07 18:32:27 +03:00
|
|
|
|
hs-source-dirs: src
|
2019-01-08 21:45:24 +03:00
|
|
|
|
other-modules: Streamly.Atomics
|
|
|
|
|
, Streamly.SVar
|
2019-01-11 00:51:02 +03:00
|
|
|
|
, Streamly.Time.Units
|
|
|
|
|
, Streamly.Time.Clock
|
2018-11-02 16:14:30 +03:00
|
|
|
|
|
|
|
|
|
-- Base streams
|
2018-12-26 14:37:24 +03:00
|
|
|
|
, Streamly.Streams.StreamK.Type
|
2018-06-22 02:00:26 +03:00
|
|
|
|
, Streamly.Streams.StreamK
|
2018-12-26 14:37:24 +03:00
|
|
|
|
, Streamly.Streams.StreamD.Type
|
2018-06-23 15:01:17 +03:00
|
|
|
|
, Streamly.Streams.StreamD
|
2018-11-02 16:14:30 +03:00
|
|
|
|
, Streamly.Streams.Prelude
|
|
|
|
|
|
|
|
|
|
-- Higher level streams
|
2018-06-22 01:28:16 +03:00
|
|
|
|
, Streamly.Streams.SVar
|
2018-11-02 16:14:30 +03:00
|
|
|
|
, Streamly.Streams.Serial
|
2018-06-22 01:28:16 +03:00
|
|
|
|
, Streamly.Streams.Async
|
|
|
|
|
, Streamly.Streams.Parallel
|
|
|
|
|
, Streamly.Streams.Ahead
|
|
|
|
|
, Streamly.Streams.Zip
|
2018-11-02 16:14:30 +03:00
|
|
|
|
, Streamly.Streams.Combinators
|
2018-11-16 11:11:17 +03:00
|
|
|
|
, Streamly.List
|
|
|
|
|
, Streamly.String
|
2018-12-22 18:54:03 +03:00
|
|
|
|
, Streamly.Enumeration
|
2019-05-06 14:54:01 +03:00
|
|
|
|
, Streamly.Array.Types
|
2019-05-07 23:48:40 +03:00
|
|
|
|
, Streamly.RingBuffer
|
|
|
|
|
, Streamly.Strict
|
|
|
|
|
, Streamly.Fold.Types
|
|
|
|
|
, Streamly.Sink.Types
|
|
|
|
|
, Streamly.Sink
|
2018-12-30 19:43:57 +03:00
|
|
|
|
|
|
|
|
|
exposed-modules: Streamly.Prelude
|
2019-05-06 14:54:01 +03:00
|
|
|
|
, Streamly.Array
|
2017-11-20 15:33:13 +03:00
|
|
|
|
, Streamly.Time
|
|
|
|
|
, Streamly
|
2019-05-07 23:48:40 +03:00
|
|
|
|
, Streamly.Fold
|
|
|
|
|
|
2018-06-22 01:28:16 +03:00
|
|
|
|
, Streamly.Tutorial
|
2018-09-19 21:44:16 +03:00
|
|
|
|
, Streamly.Internal
|
2017-11-21 18:06:01 +03:00
|
|
|
|
|
2017-06-07 18:32:27 +03:00
|
|
|
|
default-language: Haskell2010
|
2018-11-06 04:13:43 +03:00
|
|
|
|
ghc-options: -Wall -fspec-constr-recursive=10
|
2017-09-14 06:10:50 +03:00
|
|
|
|
|
2018-06-26 07:14:06 +03:00
|
|
|
|
if flag(streamk)
|
|
|
|
|
cpp-options: -DUSE_STREAMK_ONLY
|
|
|
|
|
|
2018-06-24 20:26:40 +03:00
|
|
|
|
if flag(no-fusion)
|
|
|
|
|
cpp-options: -DDISABLE_FUSION
|
|
|
|
|
|
2017-09-14 06:10:50 +03:00
|
|
|
|
if flag(dev)
|
2019-05-06 14:54:01 +03:00
|
|
|
|
cpp-options: -DDEVBUILD
|
2017-09-14 06:10:50 +03:00
|
|
|
|
ghc-options: -Wmissed-specialisations
|
|
|
|
|
-Wall-missed-specialisations
|
|
|
|
|
-fno-ignore-asserts
|
|
|
|
|
if impl(ghc >= 8.0)
|
|
|
|
|
ghc-options: -Wcompat
|
2017-09-13 20:53:24 +03:00
|
|
|
|
-Wunrecognised-warning-flags
|
|
|
|
|
-Widentities
|
|
|
|
|
-Wincomplete-record-updates
|
|
|
|
|
-Wincomplete-uni-patterns
|
|
|
|
|
-Wredundant-constraints
|
|
|
|
|
-Wnoncanonical-monad-instances
|
|
|
|
|
-Wnoncanonical-monadfail-instances
|
2017-06-07 18:32:27 +03:00
|
|
|
|
|
2017-08-31 03:41:46 +03:00
|
|
|
|
build-depends: base >= 4.8 && < 5
|
2018-06-24 20:13:30 +03:00
|
|
|
|
, ghc-prim >= 0.2 && < 0.6
|
2018-11-02 15:28:30 +03:00
|
|
|
|
, deepseq >= 1.4.3 && < 1.5
|
2018-09-12 18:55:59 +03:00
|
|
|
|
, containers >= 0.5 && < 0.7
|
2018-05-17 08:52:29 +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
|
2018-03-18 09:52:59 +03:00
|
|
|
|
, exceptions >= 0.8 && < 0.11
|
2017-08-31 03:41:46 +03:00
|
|
|
|
, monad-control >= 1.0 && < 2
|
|
|
|
|
, mtl >= 2.2 && < 3
|
2017-09-05 11:04:39 +03:00
|
|
|
|
, transformers >= 0.4 && < 0.6
|
2017-08-31 03:41:46 +03:00
|
|
|
|
, transformers-base >= 0.4 && < 0.5
|
2019-05-07 23:48:40 +03:00
|
|
|
|
, random
|
2017-10-20 23:19:14 +03:00
|
|
|
|
|
2017-09-08 20:10:23 +03:00
|
|
|
|
if impl(ghc < 8.0)
|
|
|
|
|
build-depends:
|
|
|
|
|
semigroups >= 0.18 && < 0.19
|
2017-06-07 18:32:27 +03:00
|
|
|
|
|
2018-05-03 22:57:22 +03:00
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
-- Test suites
|
|
|
|
|
-------------------------------------------------------------------------------
|
2017-10-20 23:19:14 +03:00
|
|
|
|
|
2018-08-11 15:28:45 +03:00
|
|
|
|
-- Compilation for coverage builds on CI machines takes too long without -O0
|
|
|
|
|
|
2017-06-30 23:05:49 +03:00
|
|
|
|
test-suite test
|
|
|
|
|
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
|
2018-10-12 15:59:43 +03:00
|
|
|
|
ghc-options: -O0 -Wall -threaded -with-rtsopts=-N -fno-ignore-asserts
|
2017-09-14 06:10:50 +03:00
|
|
|
|
if flag(dev)
|
2018-08-16 17:04:11 +03:00
|
|
|
|
cpp-options: -DDEVBUILD
|
2017-09-14 06:10:50 +03:00
|
|
|
|
ghc-options: -Wmissed-specialisations
|
|
|
|
|
-Wall-missed-specialisations
|
|
|
|
|
if impl(ghc >= 8.0)
|
|
|
|
|
ghc-options: -Wcompat
|
|
|
|
|
-Wunrecognised-warning-flags
|
|
|
|
|
-Widentities
|
|
|
|
|
-Wincomplete-record-updates
|
|
|
|
|
-Wincomplete-uni-patterns
|
|
|
|
|
-Wredundant-constraints
|
|
|
|
|
-Wnoncanonical-monad-instances
|
|
|
|
|
-Wnoncanonical-monadfail-instances
|
2017-06-30 23:05:49 +03:00
|
|
|
|
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
|
2018-09-12 18:55:59 +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
|
|
|
|
|
|
2018-12-30 22:26:57 +03:00
|
|
|
|
-- test-suite pure-streams-base
|
|
|
|
|
-- type: exitcode-stdio-1.0
|
|
|
|
|
-- main-is: PureStreams.hs
|
|
|
|
|
-- hs-source-dirs: test
|
|
|
|
|
-- ghc-options: -O0 -Wall -threaded -with-rtsopts=-N -fno-ignore-asserts
|
|
|
|
|
-- if flag(dev)
|
|
|
|
|
-- cpp-options: -DDEVBUILD
|
|
|
|
|
-- ghc-options: -Wmissed-specialisations
|
|
|
|
|
-- -Wall-missed-specialisations
|
|
|
|
|
-- if impl(ghc >= 8.0)
|
|
|
|
|
-- ghc-options: -Wcompat
|
|
|
|
|
-- -Wunrecognised-warning-flags
|
|
|
|
|
-- -Widentities
|
|
|
|
|
-- -Wincomplete-record-updates
|
|
|
|
|
-- -Wincomplete-uni-patterns
|
|
|
|
|
-- -Wredundant-constraints
|
|
|
|
|
-- -Wnoncanonical-monad-instances
|
|
|
|
|
-- -Wnoncanonical-monadfail-instances
|
|
|
|
|
-- build-depends:
|
|
|
|
|
-- streamly
|
|
|
|
|
-- , base >= 4.8 && < 5
|
|
|
|
|
-- , hspec >= 2.0 && < 3
|
|
|
|
|
-- default-language: Haskell2010
|
|
|
|
|
--
|
|
|
|
|
-- test-suite pure-streams-streamly
|
|
|
|
|
-- type: exitcode-stdio-1.0
|
|
|
|
|
-- main-is: PureStreams.hs
|
|
|
|
|
-- hs-source-dirs: test
|
|
|
|
|
-- cpp-options: -DUSE_STREAMLY_LIST
|
|
|
|
|
-- ghc-options: -O0 -Wall -threaded -with-rtsopts=-N -fno-ignore-asserts
|
|
|
|
|
-- if flag(dev)
|
|
|
|
|
-- cpp-options: -DDEVBUILD
|
|
|
|
|
-- ghc-options: -Wmissed-specialisations
|
|
|
|
|
-- -Wall-missed-specialisations
|
|
|
|
|
-- if impl(ghc >= 8.0)
|
|
|
|
|
-- ghc-options: -Wcompat
|
|
|
|
|
-- -Wunrecognised-warning-flags
|
|
|
|
|
-- -Widentities
|
|
|
|
|
-- -Wincomplete-record-updates
|
|
|
|
|
-- -Wincomplete-uni-patterns
|
|
|
|
|
-- -Wredundant-constraints
|
|
|
|
|
-- -Wnoncanonical-monad-instances
|
|
|
|
|
-- -Wnoncanonical-monadfail-instances
|
|
|
|
|
-- 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
|
|
|
|
|
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
|
2018-10-12 15:59:43 +03:00
|
|
|
|
ghc-options: -fno-ignore-asserts -Wall -O0 -threaded -with-rtsopts=-N
|
2018-04-14 12:26:02 +03:00
|
|
|
|
if flag(dev)
|
2018-05-24 14:18:48 +03:00
|
|
|
|
cpp-options: -DDEVBUILD
|
2018-04-14 12:26:02 +03:00
|
|
|
|
ghc-options: -Wmissed-specialisations
|
|
|
|
|
-Wall-missed-specialisations
|
|
|
|
|
if impl(ghc >= 8.0)
|
|
|
|
|
ghc-options: -Wcompat
|
|
|
|
|
-Wunrecognised-warning-flags
|
|
|
|
|
-Widentities
|
|
|
|
|
-Wincomplete-record-updates
|
|
|
|
|
-Wincomplete-uni-patterns
|
|
|
|
|
-Wredundant-constraints
|
|
|
|
|
-Wnoncanonical-monad-instances
|
|
|
|
|
-Wnoncanonical-monadfail-instances
|
|
|
|
|
build-depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
2019-03-27 21:19:23 +03:00
|
|
|
|
, QuickCheck >= 2.10 && < 2.14
|
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-05-06 14:54:01 +03:00
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
main-is: Arrays.hs
|
|
|
|
|
js-sources: jsbits/clock.js
|
|
|
|
|
hs-source-dirs: test
|
|
|
|
|
ghc-options: -fno-ignore-asserts -Wall -O0 -threaded -with-rtsopts=-N
|
|
|
|
|
if flag(dev)
|
|
|
|
|
cpp-options: -DDEVBUILD
|
|
|
|
|
ghc-options: -Wmissed-specialisations
|
|
|
|
|
-Wall-missed-specialisations
|
|
|
|
|
if impl(ghc >= 8.0)
|
|
|
|
|
ghc-options: -Wcompat
|
|
|
|
|
-Wunrecognised-warning-flags
|
|
|
|
|
-Widentities
|
|
|
|
|
-Wincomplete-record-updates
|
|
|
|
|
-Wincomplete-uni-patterns
|
|
|
|
|
-Wredundant-constraints
|
|
|
|
|
-Wnoncanonical-monad-instances
|
|
|
|
|
-Wnoncanonical-monadfail-instances
|
|
|
|
|
build-depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
, QuickCheck >= 2.10 && < 2.14
|
|
|
|
|
, 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
|
|
|
|
|
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
|
2018-10-12 15:59:43 +03:00
|
|
|
|
ghc-options: -fno-ignore-asserts -O2 -Wall -threaded -with-rtsopts=-N
|
2018-07-08 04:53:24 +03:00
|
|
|
|
if flag(dev)
|
|
|
|
|
buildable: True
|
|
|
|
|
build-Depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
, clock >= 0.7.1 && < 0.8
|
|
|
|
|
, 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
|
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
main-is: loops.hs
|
|
|
|
|
hs-source-dirs: test
|
2018-10-12 15:59:43 +03:00
|
|
|
|
ghc-options: -fno-ignore-asserts -O2 -Wall -threaded -with-rtsopts=-N
|
2018-05-03 22:57:22 +03:00
|
|
|
|
build-Depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
|
|
|
|
|
test-suite nested-loops
|
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
main-is: nested-loops.hs
|
|
|
|
|
hs-source-dirs: test
|
2018-10-12 15:59:43 +03:00
|
|
|
|
ghc-options: -fno-ignore-asserts -O2 -Wall -threaded -with-rtsopts=-N
|
2018-05-03 22:57:22 +03:00
|
|
|
|
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
|
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
main-is: parallel-loops.hs
|
|
|
|
|
hs-source-dirs: test
|
2018-10-12 15:59:43 +03:00
|
|
|
|
ghc-options: -fno-ignore-asserts -O2 -Wall -threaded -with-rtsopts=-N
|
2018-05-03 22:57:22 +03:00
|
|
|
|
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
|
|
|
|
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
-- Benchmarks
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
|
2018-07-13 15:17:01 +03:00
|
|
|
|
benchmark linear
|
2018-06-23 18:27:24 +03:00
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
hs-source-dirs: benchmark
|
2018-07-13 15:17:01 +03:00
|
|
|
|
main-is: Linear.hs
|
|
|
|
|
other-modules: LinearOps
|
2018-06-23 18:27:24 +03:00
|
|
|
|
default-language: Haskell2010
|
2019-05-06 14:54:01 +03:00
|
|
|
|
ghc-options: -O2 -Wall -with-rtsopts "-T" -fspec-constr-recursive=10
|
2018-06-23 18:27:24 +03:00
|
|
|
|
if flag(dev)
|
|
|
|
|
ghc-options: -Wmissed-specialisations
|
|
|
|
|
-Wall-missed-specialisations
|
|
|
|
|
-fno-ignore-asserts
|
|
|
|
|
if impl(ghc >= 8.0)
|
|
|
|
|
ghc-options: -Wcompat
|
|
|
|
|
-Wunrecognised-warning-flags
|
|
|
|
|
-Widentities
|
|
|
|
|
-Wincomplete-record-updates
|
|
|
|
|
-Wincomplete-uni-patterns
|
|
|
|
|
-Wredundant-constraints
|
|
|
|
|
-Wnoncanonical-monad-instances
|
|
|
|
|
-Wnoncanonical-monadfail-instances
|
2018-07-13 15:17:01 +03:00
|
|
|
|
build-depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
2018-11-02 15:28:30 +03:00
|
|
|
|
, deepseq >= 1.4.3 && < 1.5
|
2018-07-13 15:17:01 +03:00
|
|
|
|
, random >= 1.0 && < 2.0
|
2018-10-21 17:48:49 +03:00
|
|
|
|
, gauge >= 0.2.4 && < 0.3
|
2018-06-23 18:27:24 +03:00
|
|
|
|
|
2018-10-09 10:18:53 +03:00
|
|
|
|
benchmark linear-async
|
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
hs-source-dirs: benchmark
|
|
|
|
|
main-is: LinearAsync.hs
|
|
|
|
|
other-modules: LinearOps
|
|
|
|
|
default-language: Haskell2010
|
2019-05-06 14:54:01 +03:00
|
|
|
|
ghc-options: -O2 -Wall -fspec-constr-recursive=10 -with-rtsopts "-T"
|
2018-10-09 10:18:53 +03:00
|
|
|
|
cpp-options: -DLINEAR_ASYNC
|
|
|
|
|
if flag(dev)
|
|
|
|
|
ghc-options: -Wmissed-specialisations
|
|
|
|
|
-Wall-missed-specialisations
|
|
|
|
|
-fno-ignore-asserts
|
|
|
|
|
if impl(ghc >= 8.0)
|
|
|
|
|
ghc-options: -Wcompat
|
|
|
|
|
-Wunrecognised-warning-flags
|
|
|
|
|
-Widentities
|
|
|
|
|
-Wincomplete-record-updates
|
|
|
|
|
-Wincomplete-uni-patterns
|
|
|
|
|
-Wredundant-constraints
|
|
|
|
|
-Wnoncanonical-monad-instances
|
|
|
|
|
-Wnoncanonical-monadfail-instances
|
|
|
|
|
build-depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
2018-11-02 15:28:30 +03:00
|
|
|
|
, deepseq >= 1.4.3 && < 1.5
|
2018-10-09 10:18:53 +03:00
|
|
|
|
, random >= 1.0 && < 2.0
|
2018-10-21 17:48:49 +03:00
|
|
|
|
, gauge >= 0.2.4 && < 0.3
|
2018-10-11 04:38:20 +03:00
|
|
|
|
|
|
|
|
|
benchmark linear-rate
|
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
hs-source-dirs: benchmark
|
|
|
|
|
main-is: LinearRate.hs
|
|
|
|
|
other-modules: LinearOps
|
|
|
|
|
default-language: Haskell2010
|
2019-05-06 14:54:01 +03:00
|
|
|
|
ghc-options: -O2 -Wall -fspec-constr-recursive=10 -with-rtsopts "-T"
|
2018-10-11 04:38:20 +03:00
|
|
|
|
if flag(dev)
|
|
|
|
|
ghc-options: -Wmissed-specialisations
|
|
|
|
|
-Wall-missed-specialisations
|
|
|
|
|
-fno-ignore-asserts
|
|
|
|
|
if impl(ghc >= 8.0)
|
|
|
|
|
ghc-options: -Wcompat
|
|
|
|
|
-Wunrecognised-warning-flags
|
|
|
|
|
-Widentities
|
|
|
|
|
-Wincomplete-record-updates
|
|
|
|
|
-Wincomplete-uni-patterns
|
|
|
|
|
-Wredundant-constraints
|
|
|
|
|
-Wnoncanonical-monad-instances
|
|
|
|
|
-Wnoncanonical-monadfail-instances
|
|
|
|
|
build-depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
2018-11-02 15:28:30 +03:00
|
|
|
|
, deepseq >= 1.4.3 && < 1.5
|
2018-10-11 04:38:20 +03:00
|
|
|
|
, random >= 1.0 && < 2.0
|
2018-10-21 17:48:49 +03:00
|
|
|
|
, gauge >= 0.2.4 && < 0.3
|
2018-10-09 10:18:53 +03:00
|
|
|
|
|
2018-07-13 15:17:01 +03:00
|
|
|
|
benchmark nested
|
2018-04-09 18:02:49 +03:00
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
hs-source-dirs: benchmark
|
2018-07-13 15:17:01 +03:00
|
|
|
|
main-is: Nested.hs
|
|
|
|
|
other-modules: NestedOps
|
2018-04-09 18:02:49 +03:00
|
|
|
|
default-language: Haskell2010
|
2019-05-06 14:54:01 +03:00
|
|
|
|
ghc-options: -O2 -Wall -fspec-constr-recursive=10 -with-rtsopts "-T"
|
2018-04-09 18:02:49 +03:00
|
|
|
|
if flag(dev)
|
|
|
|
|
ghc-options: -Wmissed-specialisations
|
|
|
|
|
-Wall-missed-specialisations
|
|
|
|
|
-fno-ignore-asserts
|
2018-04-23 11:12:33 +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
|
|
|
|
|
-Wnoncanonical-monadfail-instances
|
|
|
|
|
build-depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
2018-11-02 15:28:30 +03:00
|
|
|
|
, deepseq >= 1.4.3 && < 1.5
|
2018-04-23 11:12:33 +03:00
|
|
|
|
, random >= 1.0 && < 2.0
|
2018-10-21 17:48:49 +03:00
|
|
|
|
, gauge >= 0.2.4 && < 0.3
|
2018-04-23 11:12:33 +03:00
|
|
|
|
|
2019-05-06 14:54:01 +03:00
|
|
|
|
benchmark array
|
|
|
|
|
type: exitcode-stdio-1.0
|
|
|
|
|
hs-source-dirs: benchmark
|
|
|
|
|
main-is: Array.hs
|
|
|
|
|
other-modules: ArrayOps
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
ghc-options: -O2 -Wall -with-rtsopts "-T" -fspec-constr-recursive=10
|
|
|
|
|
if flag(dev)
|
|
|
|
|
cpp-options: -DDEVBUILD
|
|
|
|
|
ghc-options: -Wmissed-specialisations
|
|
|
|
|
-Wall-missed-specialisations
|
|
|
|
|
-fno-ignore-asserts
|
|
|
|
|
if impl(ghc >= 8.0)
|
|
|
|
|
ghc-options: -Wcompat
|
|
|
|
|
-Wunrecognised-warning-flags
|
|
|
|
|
-Widentities
|
|
|
|
|
-Wincomplete-record-updates
|
|
|
|
|
-Wincomplete-uni-patterns
|
|
|
|
|
-Wredundant-constraints
|
|
|
|
|
-Wnoncanonical-monad-instances
|
|
|
|
|
-Wnoncanonical-monadfail-instances
|
|
|
|
|
build-depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
, deepseq >= 1.4.3 && < 1.5
|
|
|
|
|
, random >= 1.0 && < 2.0
|
|
|
|
|
, gauge >= 0.2.4 && < 0.3
|
|
|
|
|
|
2018-07-13 15:17:01 +03:00
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
-- Internal benchmarks for unexposed modules
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
-- We have to copy the streamly library modules here because there is no
|
|
|
|
|
-- way to use unexposed modules from the library.
|
|
|
|
|
|
|
|
|
|
benchmark base
|
2018-04-23 11:12:33 +03:00
|
|
|
|
type: exitcode-stdio-1.0
|
2019-01-11 00:51:02 +03:00
|
|
|
|
include-dirs: src/Streamly/Time
|
|
|
|
|
, src/Streamly/Streams
|
|
|
|
|
if os(windows)
|
|
|
|
|
c-sources: src/Streamly/Time/Windows.c
|
|
|
|
|
if os(darwin)
|
|
|
|
|
c-sources: src/Streamly/Time/Darwin.c
|
2018-07-13 15:17:01 +03:00
|
|
|
|
hs-source-dirs: benchmark, src
|
|
|
|
|
main-is: BaseStreams.hs
|
2019-01-08 21:45:24 +03:00
|
|
|
|
other-modules: Streamly.Atomics
|
2019-01-11 00:51:02 +03:00
|
|
|
|
, Streamly.Time.Units
|
|
|
|
|
, Streamly.Time.Clock
|
2019-01-08 21:45:24 +03:00
|
|
|
|
, Streamly.SVar
|
2018-12-26 22:22:33 +03:00
|
|
|
|
, Streamly.Streams.StreamK.Type
|
2018-07-13 15:17:01 +03:00
|
|
|
|
, Streamly.Streams.StreamK
|
2018-12-26 22:22:33 +03:00
|
|
|
|
, Streamly.Streams.StreamD.Type
|
2018-07-13 15:17:01 +03:00
|
|
|
|
, Streamly.Streams.StreamD
|
|
|
|
|
, Streamly.Streams.Prelude
|
|
|
|
|
|
|
|
|
|
, StreamDOps
|
|
|
|
|
, StreamKOps
|
|
|
|
|
|
2018-04-23 11:12:33 +03:00
|
|
|
|
default-language: Haskell2010
|
2019-05-06 14:54:01 +03:00
|
|
|
|
ghc-options: -O2 -Wall -fspec-constr-recursive=10 -with-rtsopts "-T"
|
2018-04-23 11:12:33 +03:00
|
|
|
|
if flag(dev)
|
|
|
|
|
ghc-options: -Wmissed-specialisations
|
|
|
|
|
-Wall-missed-specialisations
|
|
|
|
|
-fno-ignore-asserts
|
2018-04-09 18:02:49 +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
|
|
|
|
|
-Wnoncanonical-monadfail-instances
|
2018-07-13 15:17:01 +03:00
|
|
|
|
|
2018-11-06 02:06:41 +03:00
|
|
|
|
if flag(dev)
|
|
|
|
|
buildable: True
|
|
|
|
|
build-depends:
|
|
|
|
|
base >= 4.8 && < 5
|
2018-11-02 15:28:30 +03:00
|
|
|
|
, deepseq >= 1.4.3 && < 1.5
|
2018-11-06 02:06:41 +03:00
|
|
|
|
, random >= 1.0 && < 2.0
|
|
|
|
|
, gauge >= 0.2.4 && < 0.3
|
|
|
|
|
|
|
|
|
|
, ghc-prim >= 0.2 && < 0.6
|
|
|
|
|
, containers >= 0.5 && < 0.7
|
|
|
|
|
, heaps >= 0.3 && < 0.4
|
|
|
|
|
|
|
|
|
|
-- concurrency
|
|
|
|
|
, atomic-primops >= 0.8 && < 0.9
|
|
|
|
|
, lockfree-queue >= 0.2.3 && < 0.3
|
|
|
|
|
|
|
|
|
|
, exceptions >= 0.8 && < 0.11
|
|
|
|
|
, monad-control >= 1.0 && < 2
|
|
|
|
|
, mtl >= 2.2 && < 3
|
|
|
|
|
, transformers >= 0.4 && < 0.6
|
|
|
|
|
, transformers-base >= 0.4 && < 0.5
|
2018-07-13 15:17:01 +03:00
|
|
|
|
|
2018-11-06 02:06:41 +03:00
|
|
|
|
if impl(ghc < 8.0)
|
|
|
|
|
build-depends:
|
|
|
|
|
semigroups >= 0.18 && < 0.19
|
|
|
|
|
else
|
|
|
|
|
buildable: False
|
2018-07-13 15:17:01 +03:00
|
|
|
|
|
2018-11-06 02:06:41 +03:00
|
|
|
|
executable nano-bench
|
|
|
|
|
hs-source-dirs: benchmark, src
|
2019-01-11 00:51:02 +03:00
|
|
|
|
include-dirs: src/Streamly/Time
|
|
|
|
|
, src/Streamly/Streams
|
|
|
|
|
if os(windows)
|
|
|
|
|
c-sources: src/Streamly/Time/Windows.c
|
|
|
|
|
if os(darwin)
|
|
|
|
|
c-sources: src/Streamly/Time/Darwin.c
|
2018-11-06 02:06:41 +03:00
|
|
|
|
main-is: NanoBenchmarks.hs
|
2019-01-08 21:45:24 +03:00
|
|
|
|
other-modules: Streamly.Atomics
|
2019-01-11 00:51:02 +03:00
|
|
|
|
, Streamly.Time.Units
|
|
|
|
|
, Streamly.Time.Clock
|
2019-01-08 21:45:24 +03:00
|
|
|
|
, Streamly.SVar
|
2018-12-26 22:22:33 +03:00
|
|
|
|
, Streamly.Streams.StreamK.Type
|
2018-11-06 02:06:41 +03:00
|
|
|
|
, Streamly.Streams.StreamK
|
2018-12-26 22:22:33 +03:00
|
|
|
|
, Streamly.Streams.StreamD.Type
|
2018-11-06 02:06:41 +03:00
|
|
|
|
, Streamly.Streams.StreamD
|
|
|
|
|
default-language: Haskell2010
|
2019-05-06 14:54:01 +03:00
|
|
|
|
ghc-options: -O2 -Wall -with-rtsopts "-T"
|
2018-07-13 15:17:01 +03:00
|
|
|
|
|
2018-11-06 02:06:41 +03:00
|
|
|
|
if flag(dev)
|
|
|
|
|
buildable: True
|
|
|
|
|
build-depends:
|
|
|
|
|
base >= 4.8 && < 5
|
|
|
|
|
, gauge >= 0.2.4 && < 0.3
|
|
|
|
|
, ghc-prim >= 0.2 && < 0.6
|
|
|
|
|
, containers >= 0.5 && < 0.7
|
2019-05-06 14:54:01 +03:00
|
|
|
|
, deepseq >= 1.4.3 && < 1.5
|
2018-11-06 02:06:41 +03:00
|
|
|
|
, heaps >= 0.3 && < 0.4
|
2018-12-26 22:22:33 +03:00
|
|
|
|
, random >= 1.0 && < 2.0
|
2018-11-06 02:06:41 +03:00
|
|
|
|
|
|
|
|
|
-- concurrency
|
|
|
|
|
, atomic-primops >= 0.8 && < 0.9
|
|
|
|
|
, lockfree-queue >= 0.2.3 && < 0.3
|
|
|
|
|
|
|
|
|
|
, exceptions >= 0.8 && < 0.11
|
|
|
|
|
, monad-control >= 1.0 && < 2
|
|
|
|
|
, mtl >= 2.2 && < 3
|
|
|
|
|
, transformers >= 0.4 && < 0.6
|
2019-05-06 14:54:01 +03:00
|
|
|
|
, transformers-base >= 0.4 && < 0.5
|
2018-11-06 02:06:41 +03:00
|
|
|
|
else
|
|
|
|
|
buildable: False
|
2018-07-13 15:17:01 +03:00
|
|
|
|
|
2018-11-06 02:06:41 +03:00
|
|
|
|
executable adaptive
|
|
|
|
|
hs-source-dirs: benchmark
|
|
|
|
|
main-is: Adaptive.hs
|
|
|
|
|
default-language: Haskell2010
|
2019-05-06 14:54:01 +03:00
|
|
|
|
ghc-options: -O2 -Wall -with-rtsopts "-T"
|
2018-11-06 02:06:41 +03:00
|
|
|
|
|
|
|
|
|
if flag(dev)
|
|
|
|
|
buildable: True
|
|
|
|
|
build-depends:
|
|
|
|
|
streamly
|
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
, gauge >= 0.2.4 && < 0.3
|
|
|
|
|
, random >= 1.0 && < 2.0
|
|
|
|
|
else
|
|
|
|
|
buildable: False
|
2018-04-09 18:02:49 +03:00
|
|
|
|
|
2018-10-09 10:18:53 +03:00
|
|
|
|
executable chart
|
2018-04-25 11:51:02 +03:00
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
hs-source-dirs: benchmark
|
2018-10-09 10:18:53 +03:00
|
|
|
|
main-is: Chart.hs
|
2019-03-20 13:07:54 +03:00
|
|
|
|
if flag(dev) && !flag(no-charts) && !impl(ghcjs)
|
2018-04-10 09:21:05 +03:00
|
|
|
|
buildable: True
|
|
|
|
|
build-Depends:
|
|
|
|
|
base >= 4.8 && < 5
|
2018-10-11 12:19:16 +03:00
|
|
|
|
, bench-show >= 0.2 && < 0.3
|
2018-04-10 09:21:05 +03:00
|
|
|
|
, split
|
2018-10-26 15:45:14 +03:00
|
|
|
|
, transformers >= 0.4 && < 0.6
|
2018-04-10 09:21:05 +03:00
|
|
|
|
else
|
|
|
|
|
buildable: False
|
|
|
|
|
|
2018-05-03 22:57:22 +03:00
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
-- Examples
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
executable SearchQuery
|
2018-03-25 05:04:03 +03:00
|
|
|
|
default-language: Haskell2010
|
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-03-03 15:44:07 +03:00
|
|
|
|
ghc-options: -Wall
|
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
|
|
|
|
|
build-Depends:
|
2017-11-20 15:33:13 +03:00
|
|
|
|
streamly
|
2018-05-03 22:57:22 +03:00
|
|
|
|
, base >= 4.8 && < 5
|
|
|
|
|
, http-conduit >= 2.2.2 && < 2.4
|
2017-10-18 09:21:38 +03:00
|
|
|
|
else
|
|
|
|
|
buildable: False
|
|
|
|
|
|
2018-05-03 22:57:22 +03:00
|
|
|
|
executable ListDir
|
2018-03-25 05:04:03 +03:00
|
|
|
|
default-language: Haskell2010
|
2018-05-03 22:57:22 +03:00
|
|
|
|
main-is: ListDir.hs
|
2017-10-18 09:21:38 +03:00
|
|
|
|
hs-source-dirs: examples
|
2019-03-03 15:44:07 +03:00
|
|
|
|
ghc-options: -Wall
|
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-12-30 22:55:10 +03:00
|
|
|
|
, path-io >= 0.1.0 && < 1.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
|
2018-03-25 05:04:03 +03:00
|
|
|
|
default-language: Haskell2010
|
2018-05-03 22:57:22 +03:00
|
|
|
|
main-is: MergeSort.hs
|
2017-10-18 09:21:38 +03:00
|
|
|
|
hs-source-dirs: examples
|
2019-03-03 15:44:07 +03:00
|
|
|
|
ghc-options: -Wall
|
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
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
main-is: AcidRain.hs
|
|
|
|
|
hs-source-dirs: examples
|
2019-03-03 15:44:07 +03:00
|
|
|
|
ghc-options: -Wall
|
2018-05-03 22:57:22 +03:00
|
|
|
|
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
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
main-is: CirclingSquare.hs
|
|
|
|
|
hs-source-dirs: examples
|
2019-03-03 15:44:07 +03:00
|
|
|
|
ghc-options: -Wall
|
2018-05-03 22:57:22 +03:00
|
|
|
|
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
|
|
|
|
|
default-language: Haskell2010
|
|
|
|
|
main-is: ControlFlow.hs
|
|
|
|
|
hs-source-dirs: examples
|
2019-03-03 15:44:07 +03:00
|
|
|
|
ghc-options: -Wall
|
2018-10-26 15:45:14 +03:00
|
|
|
|
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
|