Commit Graph

838 Commits

Author SHA1 Message Date
Harendra Kumar
e249c4da2d Use StreamD by default, expose StreamK as separate module
Basically remove depdency on GHC rewrite rules. The reason for
separating StreamD and StreamK instead of using rewrite rules:

* Separate types provide better reasoning for the programmer about
  performance. Each type has its own pros and cons and the programmer
  can choose the best one based on the use case.
* rewrite rules are fragile, led to broken performance in the past dues
  to change in GHC.
* Rewrite rules lead to optimization problems, blocking fusion in some
  cases, specifically when combining multiple operations e.g. (filter . drop).
* Rewrite rules lead to problems when calling a function recursively. For
  example, the StreamD version of foldBreak cannot be used recursively when
  wrapped in rewrite rules because each recursive call adds a roundtrip
  conversion from D to K and back to D. We can use the StreamK versions of
  these though because the rewrite rule gets eliminated in that case.
* If we have a unified module, we need two different versions of several
  operations e.g. appendK and appendD, both are useful in different cases.
2023-02-06 22:09:26 +05:30
Ranjeet Ranjan
81bfdec224
Update packdiff and streamly-process version in cabal.project.* (#2239)
* Remove Data.Array.Stream benchmark (hanging)
2023-01-19 18:28:09 +05:30
Ranjeet Ranjan
75a174f3ea
Add benchmark for sepBy1 (#2237) 2023-01-17 17:41:34 +05:30
Ranjeet Ranjan
944dbbac6e
Fix benchmark error in Data.Array.Stream (#2230) 2023-01-15 10:21:14 +05:30
Harendra Kumar
dabe66ceaa Fix test and benchmarks for concurrent module changes 2023-01-13 16:44:36 +05:30
Ranjeet Ranjan
030499eb7e
Fix dev flag build, test, benchmarks issues (#2206)
* Fix dev flag build, test, benchmarks issues
* Add no-charts flag when compiling bench-report

Co-authored-by: Harendra Kumar <harendra@composewell.com>
2023-01-07 14:32:31 +05:30
Harendra Kumar
94f3134643 Change the argument order of put/modifyIndex 2022-12-30 19:03:28 +05:30
Harendra Kumar
6ca9d80006 Refactor Fold.Container and expose some container ops
Make the container operations less polymorphic.
2022-12-28 17:21:48 +05:30
Harendra Kumar
1f9dbb8d8a Rename Stream.Extra module to Stream.Container 2022-12-27 08:10:45 +05:30
Harendra Kumar
a6e62aec7e Refactor Stream.Top, move transformers, containers ops
Keep only those operation that depend only on "base" package, move out
operations that depend on transformers, containers to Stream.Extra.

Add crossWith for cross product operation

Rename, refactor, document set-like, join ops
2022-12-26 08:13:42 +05:30
Harendra Kumar
ccbf1e4059 Rename the Unfold apply functions
To make them consistent with corresponding stream functions.
2022-12-17 15:45:06 +05:30
Harendra Kumar
6bffc845bc Rename concatPairsWith to mergeMapWith and expose it 2022-12-17 15:45:06 +05:30
Harendra Kumar
ffcb268a4c Rename hoist/generally to morphInner/generalizeInner
Release morphInner, update docs
2022-12-17 15:44:44 +05:30
Ranjeet Ranjan
45e21892bc
Rename unicode internal modules (#2164) 2022-12-11 00:23:43 +05:30
Ranjeet Kumar Ranjan
8cca012534 Rename eqBy to streamEqBy in parsers 2022-12-07 14:09:08 +05:30
Harendra Kumar
3f82f0035a Measure cps ops embedded in direct streams 2022-12-01 18:53:55 +05:30
Ranjeet Ranjan
001b874234
Rename rights, lefts, both to catRights, catLefts, catEithers (#2139)
Co-authored-by: Harendra Kumar <harendra@composewell.com>
2022-12-01 16:28:37 +05:30
Ranjeet Ranjan
add9565306
Rename getCrossStream to unCrossStream (#2140) 2022-11-30 16:18:11 +05:30
Ranjeet Kumar Ranjan
3a21b44607 Make parser result type either everywhere
* Change remaining parse/parseBreak/parseIterate functions
* Fix benchmarks
* Fix tests
2022-11-25 19:09:34 +05:30
Harendra Kumar
ac2ee38449 Rename concatM to concatEffect and expose it 2022-11-20 17:20:06 +05:30
Harendra Kumar
2e4b883be1 Remove monad instances from StreamD/StreamK 2022-11-20 17:20:06 +05:30
Harendra Kumar
8c8b9c34ee Remove the Monad instance from SerialT/Stream type
Transfer the removed instances to the CrossStream type.
2022-11-20 17:20:06 +05:30
Harendra Kumar
449d48d379 Remove deepseq and mtl dependencies from streamly-core 2022-11-17 16:57:57 +05:30
Harendra Kumar
c156fe2f77 Fix bench targets, array read instance benchmark 2022-11-17 13:15:39 +05:30
Harendra Kumar
d7d4613a27 Prefix par to concurrent APIs
So that we can import these along with the normal/serial streaming APIs
and distinguish them clearly.
2022-11-17 11:57:03 +05:30
Ranjeet Kumar Ranjan
297574d7f1 Rename Array.Stream module to Stream.Chunked 2022-11-15 15:18:38 +05:30
Adithya Kumar
eecc006bdc Rename serial_ to split_ 2022-11-07 19:11:27 +05:30
Adithya Kumar
0d3c63aeae Rename serialWith to splitWith 2022-11-07 19:11:27 +05:30
Ranjeet Kumar Ranjan
4eda9d0c1f Rename Data.Array.Unboxed 2022-11-04 16:00:48 +05:30
Ranjeet Kumar Ranjan
64d337474b Move Data.Array to Data.Array.Generic 2022-11-04 16:00:48 +05:30
Adithya Kumar
239e3311eb Change "Parser m a b" to "Parser a m b" 2022-11-03 04:28:59 +05:30
Harendra Kumar
703823b3d5 Update Fold docs, move containers ops to streamly pkg
Move the container dependent code from streamly-core to streamly
Rename some functions.
Release some functions.
2022-11-02 20:25:26 +05:30
Harendra Kumar
0902a1587f Rename bracket_ etc to bracketUnsafe etc 2022-10-28 01:55:31 +05:30
Harendra Kumar
799531f687 Increase build mem for Data.Array benchmark 2022-10-27 17:26:06 +05:30
Adithya Kumar
41fb0734bc Use explicit arguments in the concurrency config options 2022-10-27 15:32:41 +05:30
Adithya Kumar
1fb51c42ae Replace Unboxed with Unbox and remove the Unboxed type alias 2022-10-27 01:11:34 +05:30
Harendra Kumar
fc8e9dfd29 Move lifted Unfold exceptions to "streamly" package
Implement IO based combinators in streamly-core
Move IOFinalizer lifted implementation to streamly
2022-10-26 11:41:52 +05:30
Harendra Kumar
fd681d62e8 Use MonadIO stream monad in core exception operations 2022-10-26 11:41:52 +05:30
Harendra Kumar
230e7e334a Keep IO exceptions in streamly-core and lifted in streamly 2022-10-26 11:41:52 +05:30
Adithya Kumar
af85f62f8d Deprecate internal polymorphic stream modules 2022-10-21 03:33:32 +05:30
Adithya Kumar
5327f181db Deprecate Streamly.Prelude & S.Internal.Data.Stream.IsStream.* 2022-10-21 02:07:24 +05:30
Harendra Kumar
e8564258ec
Change the unfold/toStream naming for arrays (#2004) 2022-10-20 20:12:37 +05:30
Harendra Kumar
e03cceb344
Change Handle, Stdio, File unfold APIs (#1998) 2022-10-20 17:27:02 +05:30
Ranjeet Ranjan
f20360b86e
Rename Async benchmark modules (#1968) 2022-10-18 22:53:30 +05:30
Harendra Kumar
1f376cfd9b
Rename some parsers (#1976)
Rename:
element -> oneEq
except -> oneNotEq
eqBy -> listEqBy
matchBy -> eqBy

Change the signature of eqBy to return the list.
2022-10-18 16:40:08 +05:30
Harendra Kumar
00265b40d2 Rename Stream.Async benchmark to Stream.Concurrent 2022-10-17 16:32:47 +05:30
Harendra Kumar
162fc171df Separate interleaved benchmarks in another module 2022-10-17 16:32:47 +05:30
Harendra Kumar
362ceb1e39 Rename eagerEval to eager and inspectMode to inspect 2022-10-16 20:18:16 +05:30
Harendra Kumar
bfec356951 Implement "interleaved" config option
For concurrent streams.
2022-10-16 20:02:37 +05:30
Harendra Kumar
de8b77b092 Revert "Move the Parallel module under IsStream"
This reverts commit e718389b2c.
2022-10-13 00:30:52 +05:30