Commit Graph

779 Commits

Author SHA1 Message Date
Harendra Kumar
84dc45c139 More test scenarios for stream operations 2018-03-11 01:57:19 +05:30
Harendra Kumar
c0f0b54f37 Add test for foldl 2018-03-10 17:21:09 +05:30
Harendra Kumar
3cca5971e0 optimize dropWhile and add tests 2018-03-09 14:28:58 +05:30
Harendra Kumar
25b3a3e163 Add filter tests 2018-03-09 14:04:40 +05:30
Harendra Kumar
119e07a179 Fix failing test
In parallel tests we should compare sorted results to take care of out of order
results.
2018-02-13 04:01:34 +05:30
Harendra Kumar
42df6099e2 Fix warning 2017-12-22 05:00:21 +05:30
Harendra Kumar
20d8d7c7b2 Comment out failing test 2017-12-22 04:30:33 +05:30
Harendra Kumar
21d779cd92 Comment out incorrect test 2017-11-20 22:14:39 +05:30
Harendra Kumar
a74a0c0844 Rename to Streamly
Streamly is a more appropriate name and conveys the core idea. Stream
concurrently = streamly.
2017-11-20 18:03:13 +05:30
Harendra Kumar
38b5d7ef08 fix test 2017-10-31 16:10:48 +05:30
Harendra Kumar
5fe54c6ca9 Fix zip tests
Parallel generation of streams can have unpredictable order. So use serial
instead.
2017-10-26 13:14:27 +05:30
Harendra Kumar
023a60c23e Split module Prelude into Streams and Prelude 2017-10-26 09:28:34 +05:30
Harendra Kumar
c9a821b9af Add type specific Num instances instead of deriving from base
deriving from base is incorrect since the monad/applicative instances of each
type are different.

Also add test cases for applicative/num instances of each type.
2017-10-25 15:35:57 +05:30
Harendra Kumar
a7b20ad4dc Simlify streaming type class
Use polymorphic functions instead of bunching up all streaming functions in the
type class.
2017-10-25 14:00:22 +05:30
Harendra Kumar
29f64fe8d1 Separate types for different styles of product composition 2017-10-25 08:01:29 +05:30
Harendra Kumar
3d171045de Move APIs conflicting with Prelude to Prelude module 2017-10-18 08:46:18 +05:30
Harendra Kumar
fefc00cf12 Comment out failing tests
Still not fixed with the previous change
2017-10-18 02:23:25 +05:30
Harendra Kumar
71b4134867 Do not use a blocking wait when dispatching workers 2017-10-17 07:36:55 +05:30
Harendra Kumar
50e16043f8 Comment out two failing tests 2017-10-14 20:28:55 +05:30
Harendra Kumar
1aa909b949 Add concurrent zipping API 2017-10-14 20:22:50 +05:30
Harendra Kumar
9ac16aa14c Add serial zipping APIs
zipWith, zipWithM and ZipSerial Applicative
2017-10-14 08:32:13 +05:30
Harendra Kumar
e246532213 Add more interleaved tests and mplus tests 2017-10-14 02:53:04 +05:30
Harendra Kumar
c0d2b00e1b Add tests for functor/applicative/bind with empty/monoid 2017-10-14 02:24:44 +05:30
Harendra Kumar
d1cb4d8695 Fix race condition in a parallel test 2017-09-21 00:12:09 +05:30
Harendra Kumar
5d5eabf58d Fix a race condition in a parallel test 2017-09-20 23:50:40 +05:30
Harendra Kumar
5919be5b36 Fix append and interleave nested inside parallel 2017-09-20 21:55:01 +05:30
Harendra Kumar
24fa86feb9 Add tests for nested parallel/serial compositions 2017-09-19 22:33:59 +05:30
Sibi Prabakaran
28b206e306
Fix test for composeAndComposeSimple function
Not the best way to fix test code and also involves the usage of
partial function, but I guess that's fine for test code.
2017-09-15 23:36:39 +05:30
Harendra Kumar
b477693f84 Add more tests for monoidal compositions 2017-09-14 21:17:34 +05:30
Harendra Kumar
e7e42cb154 Add parallel and interleaved bind operations 2017-09-08 21:29:02 +05:30
Harendra Kumar
154a610eb2 Fix build for ghc-7.10.3 2017-09-05 13:34:39 +05:30
Harendra Kumar
4756d82308 Add back the parallel interleaving test 2017-09-05 10:58:00 +05:30
Harendra Kumar
e2b1e4c45d Fix worker dispatch 2017-09-05 10:50:20 +05:30
Harendra Kumar
ed5f00d575 cleanup tests 2017-09-04 17:20:10 +05:30
Harendra Kumar
09a717ced9 Add take and drop operations 2017-09-04 06:05:34 +05:30
Harendra Kumar
1f645071b5 rearrange tests 2017-09-03 16:18:00 +05:30
Harendra Kumar
e43f6e46ab disable parallel interleave test
It does not work reliably
2017-09-01 19:12:50 +05:30
Harendra Kumar
c99b575051 Fix type signatures in tests 2017-08-31 02:09:53 +05:30
Harendra Kumar
a923ae8e72 reorganize tests and reuse the same tests for all ops 2017-08-30 14:58:51 +05:30
Harendra Kumar
c81684d415 Add left biased combinator and some utilities
Remove 'for' and 'each'
2017-08-29 10:44:03 +05:30
Harendra Kumar
5f1dc97a9a Add interleaved composition 2017-08-29 07:55:26 +05:30
Harendra Kumar
d4363a8ad7 Add loop tests 2017-08-28 02:09:08 +05:30
Harendra Kumar
2cc5c120ac Move a test code block 2017-08-27 08:08:48 +05:30
Harendra Kumar
ab91267967 Add test case for hierarchical alternative composition 2017-08-25 23:38:06 +05:30
Harendra Kumar
a61b30ba71 Fix, delete, move examples 2017-08-24 03:45:29 +05:30
Harendra Kumar
d8c399e567 Implement tracking and killing of child threads 2017-08-22 21:45:58 +05:30
Harendra Kumar
09283c42ac Implement pull based concurrency rate control 2017-08-21 21:10:09 +05:30
Harendra Kumar
500d889859 Simplify push-pull split, fix monoid instance 2017-08-18 07:12:29 +05:30
Harendra Kumar
63f965a784 cleanup Monoid instance 2017-08-17 01:43:14 +05:30
Harendra Kumar
8a1d5d995e Add a test for "each" to test multiple threads 2017-08-16 14:53:30 +05:30
Harendra Kumar
550eed458f Make monoid instance append two computations in order
Conflicts:
	test/Main.hs
2017-08-15 18:41:20 +05:30
Harendra Kumar
ef006c846d Implement fork for Alternative instance 2017-08-15 18:36:26 +05:30
Harendra Kumar
f8851aa158 Add MonadRecorder instance to AsynclyT 2017-08-09 18:21:28 +05:30
Harendra Kumar
4f3775d51f Enable threads API and tests 2017-08-09 17:44:05 +05:30
Harendra Kumar
7e8209e2d6 Separate the State layer from AsyncT layer
Performance degrades by 2x

StateT/AsyncT combined = 560 ms
Separated AsyncT (StateT Context IO) = 1.2 s
AsyncT IO in the separated version = 400 ms
2017-08-07 19:55:38 +05:30
Harendra Kumar
11c1f14755 Add some simple tests 2017-08-07 15:14:41 +05:30
Harendra Kumar
8340241116 Split the logging functionality into a separate package 2017-07-13 18:21:26 +05:30
Harendra Kumar
c60d15c39a Add "afterFirst" run an action after first event 2017-07-08 15:39:38 +05:30
Harendra Kumar
922c9ed018 Fix, cleanup and test discarding compositions 2017-07-08 14:09:43 +05:30
Harendra Kumar
f5cfead136 Alternative now forks automatically
Alternative "can" fork an action
`async` primitive is used to force an action to be async
2017-07-08 07:31:49 +05:30
Harendra Kumar
6c12266b1f Add more tests 2017-07-03 08:08:22 +05:30
Harendra Kumar
1e4950dac0 Simplify continuation saving and retrieval
Reduce untyped fields in the context
Merge Context.hs to AsyncT.hs
2017-07-03 05:16:26 +05:30
Harendra Kumar
f4237bfab3 rename to asyncly 2017-07-01 02:02:39 +05:30
Harendra Kumar
0e80adf13f Add test suite 2017-07-01 01:37:25 +05:30
Harendra Kumar
fe02431534 Keep just one basic async primitive, remove the rest 2017-07-01 01:35:49 +05:30
Harendra Kumar
120d0ed5f0 Add API to gather results of multiple computations 2017-06-29 05:40:29 +05:30
Harendra Kumar
afbd289a89 More complicated logging tests 2017-06-29 05:21:50 +05:30
Harendra Kumar
760a298598 rename APIs 2017-06-29 05:21:11 +05:30
Harendra Kumar
f455a06d0a Make logs work with regular wait/gather APIs too 2017-06-29 03:59:27 +05:30
Harendra Kumar
a9d6c29ba7 implement log replay 2017-06-29 03:32:48 +05:30
Harendra Kumar
bf5a11889e Add logging APIs 2017-06-28 21:40:09 +05:30
Harendra Kumar
594185f18d Add applicative and alternative tests 2017-06-26 03:15:27 +05:30
Harendra Kumar
b9c1c92dc0 Add the wait primitive to discard the results 2017-06-26 03:14:36 +05:30
Harendra Kumar
d4f2fec43f Rename the monad runner to 'gather' 2017-06-26 02:21:53 +05:30
Harendra Kumar
8a0fdb3abd Refactor/fix returning results from child threads 2017-06-25 21:23:14 +05:30
Harendra Kumar
3d530e0fe3 Rename the package to "strands" 2017-06-24 17:43:59 +05:30
Harendra Kumar
9779a0b082 Pass results from children to parent 2017-06-22 13:11:29 +05:30
Harendra Kumar
4adbddf74c Add context save, restore and continue functions
Modularize the context functionality
2017-06-11 02:56:22 +05:30
Harendra Kumar
2f8342633c Add some sample test programs 2017-06-07 21:07:13 +05:30