Commit Graph

1410 Commits

Author SHA1 Message Date
Pranay Sashank
d73f65cd76 Add Streamly.Data.SmallArray to create and manipulate SmallArray's. 2019-12-12 14:03:43 +05:30
Harendra Kumar
4ee8d64a89 Propagate exceptions from a concurrent tap
Data is tapped from a stream and folded in a separate thread. Any exceptions
from that thread are propagated to the parent stream thread.
2019-12-11 21:06:16 +05:30
Harendra Kumar
2ab0d8f42b Add unfoldrM for serial streams
This combinator does not require the MonadAsync constraint, therefore, it can
be used in mondads not based on IO.

fixes #326
2019-12-11 17:09:56 +05:30
Pranay Sashank
9ea72e9ee6 Expose all (almost) *.Internal.* modules. 2019-12-10 13:06:08 +05:30
adithyaov
8bf7eedbda Include src in scope to use #include "inline.hs" 2019-12-09 17:19:47 +05:30
adithyaov
4172ad90d0 Move inline.hs to top level, src/inline.hs 2019-12-09 16:48:36 +05:30
adithyaov
8b922997dc Move Streams/inline.hs to Internal/Data/Stream 2019-12-09 16:09:44 +05:30
adithyaov
55eb264d12 Move Streams/Instances.hs to Internal/Data/Stream 2019-12-09 16:07:17 +05:30
adithyaov
ee12b2c913 Move Streams/Parallel.hs to Internal/Data/Stream 2019-12-09 16:00:28 +05:30
adithyaov
6a593ebe85 Move Streams/Prelude.hs to Internal/Data/Stream 2019-12-09 15:59:34 +05:30
adithyaov
b1d1902b17 Move Streams/Serial.hs to Internal/Data/Stream 2019-12-09 15:57:58 +05:30
adithyaov
b17c23eb9b Move Streams/SVar.hs to Internal/Data/Stream 2019-12-09 15:55:32 +05:30
adithyaov
7af59908cb Move Streams/Zip.hs to Internal/Data/Stream 2019-12-09 15:54:09 +05:30
adithyaov
f1bef8669c Mv Streams/Enumeration.hs to Internal/Data/Stream 2019-12-09 15:44:00 +05:30
adithyaov
2fe5140423 Mv Streams/Combinators.hs to Internal/Data/Stream 2019-12-09 15:42:40 +05:30
adithyaov
f1a195155e Move Streams/Async.hs to Internal/Data/Stream 2019-12-09 15:27:25 +05:30
adithyaov
fde7585c3e Move Streams/Async.hs to Internal/Data/Stream 2019-12-09 15:26:09 +05:30
adithyaov
1790841a34 Move Streams/StreamDK* to Internal/Data/Stream 2019-12-09 15:23:36 +05:30
adithyaov
70c03f97bf Move Streams/StreamK* to Internal/Data/Stream 2019-12-09 15:14:05 +05:30
adithyaov
59796f1d14 Move Streams/StreamD.hs to Internal/Data/Stream/* 2019-12-09 14:56:10 +05:30
Harendra Kumar
879d159ff2 update pr merge checklist 2019-12-08 09:08:59 +05:30
Pranay Sashank
42f1091826 Add more benchmarks to unpinned-array. 2019-12-04 13:41:55 +05:30
Pranay Sashank
8ac427983e Move implementation details from Data.Array to Internal.Data.Array. 2019-12-04 13:41:55 +05:30
Pranay Sashank
4e04eff36d Disable docs for ghcjs build in ci. 2019-12-04 13:41:55 +05:30
Pranay Sashank
3b9b8d1baf Add benchmarks for Streamly.Data.Array. 2019-12-04 13:41:55 +05:30
Pranay Sashank
0d91f2ece9 Use Array from Data.Primitive.Array rather than defining own Array. 2019-12-04 13:41:55 +05:30
Pranay Sashank
72d14d4581 Export Stream pattern from StreamD module. 2019-12-04 13:41:55 +05:30
Pranay Sashank
ae2dce8db1 Add write and fromStream Data.Array apis and corresponding tests.
- Remove length field from Data.Array.
2019-12-04 13:41:55 +05:30
Pranay Sashank
175b0b6d10 Add tests for Streamly.Data.Array and read operator. 2019-12-04 13:41:55 +05:30
Pranay Sashank
94bd0faa21 Add support for unpinned Arrays. 2019-12-04 13:41:55 +05:30
Harendra Kumar
9fca294e1c Add concatMapTreeWith combinator 2019-12-03 11:24:44 +05:30
Harendra Kumar
562684b321 Add demux with a default when no handler matches 2019-12-03 11:07:08 +05:30
Harendra Kumar
23e00d0c34 Add transformBytesWith to transform a stream via a server 2019-11-28 09:13:49 +05:30
Harendra Kumar
ba6a1e769c Add a "discard" function
Just like "void" but also discards exceptions.
2019-11-28 07:38:00 +05:30
Harendra Kumar
0d737d1890 Update some handle and socket APIs
* putLines/putStrings/writeStrings now take an encoding function to choose the
  encoding.
* toChunksWithBufferOf now uses a StreamD style implementation for better
  fusion.
* rename useSocket to handleWith
2019-11-26 09:26:52 +05:30
Harendra Kumar
2dcc9b774a Add a potential todo comment 2019-11-26 08:47:42 +05:30
Brian Wignall
c0a93a4033 Fix some easy-to-make typos 2019-11-26 02:09:15 +05:30
Harendra Kumar
50b7824d2e Add some notes on performance optimizations
Especially what to look for first when using streamly.
2019-11-25 15:29:59 +05:30
Harendra Kumar
0569ab5d64 Add unsafe array read without bound check 2019-11-24 03:07:08 +05:30
Harendra Kumar
41e9492956 Add headElse 2019-11-23 17:03:42 +05:30
Harendra Kumar
35ba2c3279 Short circuit Skip case in toStreamK
When fusion does not occur due to conversion to StreamK, the Skip constructor
being threaded around StreamK can cause a lot of performance degradation. Skip
case is of no use to StreamK.

This improved the performance of fasta benchmark from 7 secs to 2.8 secs.

Code change suggested by Pranay Sashank.
2019-11-23 07:26:02 +05:30
Harendra Kumar
d0896e1474 Add comments explaining how "parallel" works 2019-11-23 04:14:26 +05:30
Harendra Kumar
bdce4a09aa Use direct style fromSVar for zip and function apply
Improves concurrent zip perf by 2x. There is modest improvement in zip and
apply as well.
2019-11-23 04:14:26 +05:30
Harendra Kumar
e16a980c5f Use zipWith from StreamD in zipAsyncWith etc.
Improves perf of zipAsyncWith by 4x and applicative ZipAsync by 2x.

Not sure why applicative does not show the same perf as zipAsyncWith.
2019-11-21 22:09:35 +05:30
Harendra Kumar
36bfc45842 Use StreamD for parallel zip
improves concurrent zip perf by 3x
2019-11-21 22:09:35 +05:30
Harendra Kumar
2b31b3d07b Use StreamD for parallel application and fold
Brings down the timing of parallel map application and parall sum fold to half.
2019-11-21 22:09:35 +05:30
Harendra Kumar
107f52718f Add benchmarks for parallel application and fold 2019-11-21 21:43:41 +05:30
Harendra Kumar
90da32549d Fix build with "dev" flag 2019-11-21 20:37:47 +05:30
Harendra Kumar
d15bde0085 Add repeatM unfold 2019-11-21 20:37:47 +05:30
Harendra Kumar
668a26318e Add putBytes and putLines 2019-11-21 20:37:47 +05:30