Ranjeet Kumar Ranjan
8fd51b2a37
Seperate chart build from benchmarks
...
Add extra-source-files to streamly.cabal
Fix review comments
Rename Chart.hs to BenchReport.hs
Fix extra-source-files
Remove no-charts flag
2021-06-17 17:08:05 +05:30
Harendra Kumar
eb16544f98
Use lowercased comparison for benchmark fields
...
For case insensitive comparison we were lowercasing the fields in the
benchmark csv header but not the fields being compared. So the fields
were not matching if we passed them in mixed case.
2021-06-15 01:43:50 +05:30
Harendra Kumar
3cd8e9bddf
Print info messages on stderr instead of stdout
...
Otherwise it mixes with the output of benchmark list which we use in
scripts.
2021-06-08 23:54:04 +05:30
Harendra Kumar
c4358b3957
Fix Array.Pin.Pinned benchmark module name
2021-06-08 23:54:04 +05:30
Harendra Kumar
5537b0bfc2
Add --sort-by-name flag
...
To sort the benchmarks by name instead of sorting them by field value or
percent diff.
2021-06-08 23:54:04 +05:30
Harendra Kumar
03218ad71b
Cleanup, fix issues in bench.sh
2021-06-08 23:54:04 +05:30
Ranjeet Kumar Ranjan
b68baf3c51
Add support for benchmarking with tasty-bench
...
tasty-bench has fewer dependencies and is agile to keep up with new GHC
versions. This change is especially motivated by support for GHC 9.0.1.
gauge depends on foundation/basement which lagging much behind and seem
to be unmaintained.
2021-06-08 23:54:04 +05:30
Harendra Kumar
d51fab489f
Fix benchmark name prefixes to module names
...
Otherwise the new bench.sh changes for tasy-bench won't work for these
modules.
2021-06-08 23:54:04 +05:30
Harendra Kumar
28e17ee82e
Fix a perf issue in iterate/iterateM
...
It was taking O(n) space, now it takes O(1)
2021-06-02 22:18:00 +05:30
Pranay Sashank
90be38762b
Rename Fold.yield, yieldM to fromPure, fromEffect.
2021-05-30 22:24:54 +05:30
Pranay Sashank
f24ddc0bdf
Rename Unfold.yield, yieldM to fromPure, fromEffect.
2021-05-30 22:24:54 +05:30
Pranay Sashank
70faf014ca
Rename Streamly.Prelude.yieldM to fromEffect.
...
- Deprecate yieldM.
2021-05-29 02:05:01 +05:30
Pranay Sashank
4dfc6bf9ee
Rename Streamly.Prelude.yield to fromPure.
...
- Deprecate yield.
2021-05-29 01:22:02 +05:30
Harendra Kumar
03cf686ca7
Export some pre-release array APIs
...
* getIndex
* casting ops
* writeLastN
* readRev
2021-04-27 13:37:56 +05:30
Harendra Kumar
6132eb3acb
Split stdio ops into a Console.Stdio module
...
Change the FileSystem.Handle from* APIs to put*
Mutable write APIs would use a "put" prefix to make the name more intuitive.
2021-04-25 15:53:38 +05:30
Harendra Kumar
dc647f4a4e
Change the argument order of intercalate and interpose
2021-04-24 16:17:39 +05:30
Harendra Kumar
a75c178599
Expose rollinghash and intercalate
2021-04-24 16:16:12 +05:30
Harendra Kumar
f64dd78449
Fix benchmark names, cleanup imports, fix hlint
...
Refactor only.
2021-04-24 13:36:28 +05:30
Adithya Kumar
cd916f54bb
Move array stream bench/tests to separate modules
2021-04-19 19:38:14 +05:30
Ranjeet Kumar Ranjan
ac215ad43f
Rename serially etc. to fromSerial etc. #1029
2021-04-16 00:20:54 +05:30
Harendra Kumar
0bfa00bb66
Fix heap overflow due to limit-build-mem issue
2021-04-15 02:02:57 +05:30
Ranjeet Kumar Ranjan
138d519601
concatPairsWith benchmarks #984
2021-04-07 14:06:34 +05:30
Adithya Kumar
1ddcfc4634
Fix zipWith(M) to work concurrently according to the stream type
...
https://github.com/composewell/streamly/issues/158
2021-04-06 02:34:54 +05:30
Adithya Kumar
f1f8d7ac5e
Renamed function/bench names appropriatly in bench:StreamK
...
Also add a the benchmarks that need to be added
2021-03-31 17:42:09 +05:30
Adithya Kumar
029e6873e7
Fix filterScan. Revert to using maxBound over streamLen.
...
Quoting, harendra-kumar,
> Since we are adding the numbers in the stream, <= streamLen would terminate
> the stream much earlier. We should use maxBound instead. That's because we
> compose this with filter again in the mixed benchmarks
2021-03-30 17:02:18 +05:30
Adithya Kumar
876b904ecb
Modify benchmarks to keep name comparisions backwards compatible
2021-03-30 17:02:18 +05:30
Adithya Kumar
98bc69e3d0
Rename value-ish to streamLen-ish in bench:StreamK
...
maxValue -> value
value -> streamLen
value2 -> streamLen2
value3 -> streamLen3
value16 -> streamLen16
2021-03-30 17:02:18 +05:30
Adithya Kumar
1079b49aab
Collapse sourceUnfoldr(M)N into sourceUnfoldr(M) in bench:StreamK
...
As of this commit they are completely identical.
2021-03-30 17:02:18 +05:30
Adithya Kumar
ada707b778
Move passing benchmark properties to the root in bench:StreamK
2021-03-30 17:02:18 +05:30
Adithya Kumar
ad4bcce47f
Remove unecessary code in bench:StreamK
2021-03-30 17:02:18 +05:30
Adithya Kumar
f1c19a6e85
Split O(1) space benchmarks into multiple groups in bench:StreamK
2021-03-30 17:02:18 +05:30
Adithya Kumar
23253c0270
Move global limits into function arguments in bench:StreamK
2021-03-30 17:02:18 +05:30
Adithya Kumar
c7cd7c877a
Keep the INLINE statement & signature with function 4 bench:StreamK
2021-03-30 17:02:18 +05:30
Harendra Kumar
ae741f1bd8
Change the order of arguments in Unfold.fold
...
To keep it consistent with Stream.fold.
2021-03-26 20:27:56 +05:30
Adithya Kumar
27ccdf4d94
Move compilation memory restrictions under a flag
2021-03-26 16:40:43 +05:30
Harendra Kumar
0954511144
Refactor/rename/add basic unfold constructors
2021-03-24 21:19:18 +05:30
Harendra Kumar
8af1c368c6
Change signatures of zipWith/zipWithM
2021-03-24 20:38:56 +05:30
Harendra Kumar
a5e483b610
Refactor Unfold module
...
* Rearrange exports, export additional functions
* Update docs
* Disable applicative/monad/category/arrow instances
* Rename const to yieldM and add yield
* Remove "effect", it can be expressed by yieldM
* Change order of arguments for some functions
2021-03-24 01:40:30 +05:30
Ranjeet Kumar Ranjan
b73b5ffa3a
Rename concatUnfold to unfoldMany #986
2021-03-22 19:05:17 +05:30
Ranjeet Kumar Ranjan
7759cc0082
Rename Unfold.concat to Unfold.many #985
2021-03-20 00:40:13 +05:30
Harendra Kumar
3b1a26cee5
Update Fold module docs and expose some APIs
2021-03-16 01:46:51 +05:30
Harendra Kumar
badc62d2b7
Rename stream transformation some APIs
...
Primary motivation for renaming takeEnd was to avoid confusion with
takeEndBy but I like the new name takeLast irrespective of that.
2021-03-14 01:02:10 +05:30
Adithya Kumar
92771949ad
Fix import error
2021-03-12 01:30:23 +05:30
Adithya Kumar
a1472167de
Make behaviour of Fold.many similar to that of foldMany/parseMany
2021-03-12 01:01:51 +05:30
Harendra Kumar
cd0a185607
Add NOINLINE for better optimization of loops
2021-03-12 01:01:51 +05:30
Ranjeet Kumar Ranjan
87ebad51cb
Rename Types.hs modules to Type.hs
2021-03-11 15:12:08 +05:30
Harendra Kumar
e9a0e7c118
Move rmapM to Fold/Types.hs
2021-03-10 19:29:12 +05:30
Ranjeet Kumar Ranjan
4da398aa00
Change argument order in parser combinators #969
...
Keep the collecting fold as the last argument for ease of composition.
Data flows from one fold to the next, so the next fold in the chain
should be the last argument.
2021-03-09 23:10:43 +05:30
Adithya Kumar
7da0593dbb
Add benchmarks for foldIterateM
2021-03-09 07:56:12 +05:30
Harendra Kumar
7910e05da7
Change the argument order in "many"
2021-03-08 19:53:20 +05:30
Harendra Kumar
d2e3430348
Rename some fold combinators
...
This commit has no functional change, only renaming and doc edits.
2021-03-07 23:04:41 +05:30
Harendra Kumar
fca88a49e8
Change the input stream type of classifySessionsBy
...
For more convenient operation.
2021-03-05 14:10:17 +05:30
Harendra Kumar
f7681dc897
Reorder the arguments in classifySessionsBy
...
For more convenient and intuitive use.
2021-03-05 13:04:35 +05:30
Ranjeet Kumar Ranjan
df38c4a8a4
Change splitWith to serialWith in folds and parsers
2021-03-05 11:46:59 +05:30
Ranjeet Kumar Ranjan
0414fe8ec6
Rename takeLE to take
2021-03-05 11:43:48 +05:30
Adithya Kumar
171907e2b3
Remove Applicative instance of Fold
2021-03-05 09:22:50 +05:30
Harendra Kumar
ca29fd279e
Make it build for GHC-9.0
2021-03-04 18:25:45 +05:30
Harendra Kumar
2c21267a6d
Fix fromStreamD performance
...
Before: not finishing in reasonable time
After: 686 us (similar to fromStream)
2021-02-22 14:07:35 +05:30
Harendra Kumar
c8b9fac92b
Move parse functions to Source module
...
Plus:
* Fix returning buffer in the "parse" function
* Some more minor formatting/doc fixups.
2021-02-21 01:58:20 +05:30
Harendra Kumar
2a7e3ccdbc
Rename the resumable Unfold type to Producer
2021-02-21 01:58:20 +05:30
Harendra Kumar
7c95ccaaad
Use an explicit state to represent nested loops
2021-02-21 01:58:20 +05:30
Harendra Kumar
c93bad0134
Simplify the type of resumable Unfold
2021-02-21 01:58:20 +05:30
Harendra Kumar
22c83f40fd
Add resumable unfolds for efficient nested parsing
...
Instead of using a closed loop we can stop an unfold and then resume it
later. This allows us to break the loop and restart it at some other
point. For example, we can parse a block from an input stream from a
file handle or a socket and then return the socket/handle plus nay
buffered data (due to backtracking) so that we can resume reading from
it later on after doing some processing.
2021-02-21 01:58:20 +05:30
Harendra Kumar
e6865109d1
Move the concat benchmark to Unfold module
...
Remove the NestedUnfoldOps module.
2021-02-20 10:41:58 +05:30
Harendra Kumar
77d11d37bb
Add Monad instance for Unfold
2021-02-20 08:54:28 +05:30
Harendra Kumar
4f9fc7d2c9
Fix duplicate benchmark names
...
Move the fold benchmarks in stream module to the fold module.
2021-02-20 08:54:28 +05:30
Harendra Kumar
3947fee691
Add Applicative instance for Unfold
2021-02-20 08:51:30 +05:30
Harendra Kumar
2c70b45660
Implement concatPairswith/sortBy
2021-02-17 17:19:34 +05:30
Adithya Kumar
195606428c
Add some nested benchmarks with parseMany
2021-02-14 22:46:43 +05:30
Adithya Kumar
b04187b602
Move parseMany benchamrks from FileSystem.Handle to Data.Parser
2021-02-14 14:37:37 +05:30
Pranay Sashank
9ebca6ec0a
Add sequence_ benchmark for ParserD.
2021-02-11 15:01:41 +05:30
Pranay Sashank
c1c77d030e
Add benchmark for Data.Fold.concatMap.
2021-02-11 15:01:02 +05:30
Ranjeet Kumar Ranjan
6976363939
Fix Some minor refactorings of toList/toStream folds #863
...
Fix refactoring issues in benchmark
Remove redundant import
Address review comments
Revert haddock reference
2021-02-11 00:40:24 +05:30
Harendra Kumar
11831bed44
Rename foldMany and foldMany1
...
foldMany1 is the default foldMany now. foldMany is renamed to
foldManyPost which is of limited use to split in an infix manner.
2021-02-11 00:37:12 +05:30
Adithya Kumar
27d3575855
Re-implement span, spanBy, and spanByRolling as parsers
2021-02-10 02:11:26 +05:30
Adithya Kumar
c5b6a8bfed
Remove span, break, spanBy, and spanByRolling
2021-02-10 02:11:26 +05:30
Adithya Kumar
bf396f0db0
Add fold benchmarks for span, spanBy, and spanByRolling
2021-02-10 02:11:26 +05:30
Adithya Kumar
662aced6cc
Add some derived parser benchmarks
2021-02-10 02:11:26 +05:30
Anurag Hooda
e4e1d25647
make sliceBeginWith fail when first element fails predicate
2021-02-07 20:05:01 +05:30
Anurag Hooda
fb9f05e4fb
Add sliceBeginWith, tests and benchmarks
2021-02-07 20:05:01 +05:30
Harendra Kumar
b6a07525eb
Use foldMany1 in chunksOf instead of foldMany
2021-02-06 22:29:22 +05:30
Harendra Kumar
a41a7b572f
Use bigger stream sizes in some benchmarks
2021-02-06 00:12:42 +05:30
Harendra Kumar
de31277c19
Add foldMany1 and arraysOf benchmarks
2021-02-05 16:39:13 +05:30
Pranay Sashank
ed030cc134
Rename some modules.
...
- Streamly.Internal.Memory.ArrayStream =>
Streamly.Internal.Data.Array.Stream.Foreign
- Streamly.Memory.Ring =>
Streamly.Internal.Ring.Foreign
- Streamly.FileSystem.IOVec =>
Streamly.Internal.FileSystem.IOVec
- Streamly.FileSystem.FDIO =>
Streamly.Internal.FileSystem.FDIO
- Streamly.FileSystem.FD =>
Streamly.Internal.FileSystem.FD
Closes #873 .
2021-02-01 21:39:22 +05:30
Pranay Sashank
5c018c7e45
Rename Data.Array.Storable.Foreign to Data.Array.Foreign.
...
Closes #854 .
2021-02-01 21:31:06 +05:30
Harendra Kumar
2c6f06c5b6
Increase memory limit for Prelude.Serial benchmark
...
Compiling Split.hs runs out of memory.
2021-01-28 01:19:53 +05:30
Harendra Kumar
f448fb5643
Refactor array modules (factor out array stream)
...
There is no functional change in this commit, only refactoring.
* Update module documentation for arrays
* Rearrange and re-group related functions together
* Ability to use fold/unfold/foldMany/chunksOf in low level array
modules so that we are able to express some of the functions more
idiomatically. We have not done that in this change but with this
change we should be able to do it later.
* Separate out the array stream code from lower level modules to the
higher level array stream module.
2021-01-28 01:19:44 +05:30
Harendra Kumar
6a33a88980
Increase time-limit from 0 to 0.01
...
In the "reverse'" benchmark the GC stats were showing as 0 because no
GC occurred in 1 iteration.
2021-01-27 19:08:13 +05:30
Adithya Kumar
1e099defbb
Add benchmarks for Parser(D).groupByRolling
2021-01-26 20:56:25 +05:30
Adithya Kumar
9bcf1d6c8b
Rename splitWith benchmark
...
split (all, any) -> splitWith
2021-01-24 19:02:53 +05:30
Harendra Kumar
7ce1771a28
Fix module dependencies due to Stream.Prelude
2021-01-18 12:48:35 +05:30
Adithya Kumar
9473e6bbbe
Deprecate mapM and sequence in favor of rmapM and rsequence
2021-01-16 17:48:06 +05:30
Adithya Kumar
0753435d46
Rename Fold.lchunksOf to Fold.chunksOf
2021-01-16 07:12:16 +05:30
Adithya Kumar
32e519cb8c
Rename Fold.lmap to Fold.map
2021-01-16 07:12:16 +05:30
Adithya Kumar
084cdea601
Rename Fold.ltake to Fold.takeLE
2021-01-16 07:12:16 +05:30
Anurag Hooda
86745a756d
Rename slicesepby to slicesepbyP, some formatting changes
2021-01-14 19:17:31 +05:30
Anurag Hooda
5ccf51dcae
Implement slicesepby, add tests and benchmarks
2021-01-14 19:17:31 +05:30
Anurag Hooda
656bfc6bc8
Add tests and benchmarks for takeBetween
2021-01-04 18:30:29 +05:30
Harendra Kumar
58cb9caffa
Move the bench.sh script to "bin" dir
2020-12-28 23:56:18 +05:30
Harendra Kumar
299bdffdd6
Add a script to run tests
...
This allows us to build and run individual tests or groups of tests. The
script is supposed to be extended to run hpc/coverage manually after
running the tests.
Note: cabal fails to run coverage if the test module is separated from
the library.
2020-12-28 23:56:18 +05:30
Adithya Kumar
4d3f9b41ed
Implement Data.Parser.ParserD.wordBy
...
- Modify Data.Parser.wordBy accordingly
- Add tests for both
- Add benchmarks for both
2020-12-23 00:15:32 +05:30
Adithya Kumar
b6ce6a3624
Implement Data.Parser.ParserD.groupBy
...
- Modify Data.Parser.groupBy accordingly
- Add tests for both
- Add benchmarks for both
2020-12-17 04:21:18 +05:30
Harendra Kumar
b677d0ddc9
Separate streamly tests into another package
...
To be able to use an internal test library, we need to have it as a
separate package. See comments in streamly-benchmarks.cabal for details.
Use a test library for common test modules
Also, added "opt" flag to control optimization levels.
Add a README for tests.
Update benchmarks readme.
2020-12-15 17:48:34 +05:30
Harendra Kumar
d5af0bfb5d
Remove redundant parsers, update docs
...
Remove the parsers that are covered by terminating folds.
2020-12-11 18:37:59 +00:00
Harendra Kumar
82efd3a5bc
Refactor StreamD/IsStream for terminating folds
...
* IsStream:
* Add foldMany
* Update haddock docs, with fold equivalents. Now with terminating folds the
fold behvaior is equivalent to these folds.
* Add skeletons for foldSequence/foldIterate/parseSequence
* Implement combinators directly in terms of foldMany/foldMany1
StreamD:
* export foldMany/foldMany1
* Remove groupsOf/splitBy/splitSuffixBy/splitSuffixWith, we can use
foldMany/foldMany1 directly instead.
* Make some stylistic changes to code
StreamD/Types:
* Remove groupsOf
* Remove GroupConsume state from foldMany/foldMany1
* Add benchmarks for foldMany
2020-12-11 18:27:24 +00:00
Harendra Kumar
2888bf5ce3
Review/update docs, combinators in Fold module
...
Data.Fold.Types:
* Remove takeSepBy: This function does not do what the name. Also,
`takeSepBy p` is the same as (sliceSepBy (not . p)). We can just remove
this in favor of sliceSepBy.
Data.Fold:
* Reorganize exports
* Add some skeleton/unimplemented combinators.
* Add/update haddock documentation
* Add sliceSepByMax fold - It was in parsers but it can be implemented
as a fold.
* Rename drainSepBy to drainWhile
* Rename sliceSepWith to sliceEndWith
* Remove distribute_ as it can be implemented using distribute and has
not perf advantage.
* Remove demuxWithDefault_ and implement demuxDefaultWith instead, which
does not discard the results. Discarding results has no perf
advantage.
* Implement demuxWith in terms of demuxDefaultWith, it has no perf
advantage over the latter.
* Remove demuxWith_, use demuxWith instead.
* Remove demuxDefault_, use demuxDefault instead.
* Some code/comment cleanups
Benchmarks:
* Changes corresponding to the source changes
* Some code cleanups
* Reorder benchmarks
2020-12-11 17:23:53 +05:30
Anurag Hooda
56fce33221
Refactor streamly-benchmarks.cabal, change some function names
2020-12-11 13:09:07 +05:30
Anurag Hooda
1ff4d3c634
Move Streamly.Benchmark.CommonH to lib and change benchmark names, refactor
2020-12-11 13:09:07 +05:30
Anurag Hooda
425df88c9d
Fix imports, comments and change RTS flags in streamly-benchmarks.cabal
2020-12-11 13:09:07 +05:30
Anurag Hooda
91a89db002
Change memory limit of Prelude.Adapative module
2020-12-11 13:09:07 +05:30
Anurag Hooda
87421d6d10
Fix warnings due to unused imports and shadowing
2020-12-11 13:09:07 +05:30
Anurag Hooda
f7f8b0a637
Move group/ungroup benchmarks from FileSystem.Handle to Unicode.Stream, Add Unicode.Stream to bench.sh, Add Unicode and CommonH files to streamly.cabal
2020-12-11 13:09:07 +05:30
Anurag Hooda
7f1b5d20bb
Move splitting benchmarks from FileSystem.Handle to Prelude.Serial
2020-12-11 13:09:07 +05:30
Anurag Hooda
0759821db8
Move Exception benchmarks from FileSystem.Handle to other modules
2020-12-11 13:09:07 +05:30
Anurag Hooda
8806a30ca6
Refactor Array Benchmarks and Remove unused imports
2020-12-09 09:15:45 +05:30
Anurag Hooda
e3893e26b7
Remove serially from Fold Benchmarks
2020-12-09 09:15:45 +05:30
Anurag Hooda
911a6b62d8
Move benchmarks from Fold to Array and Serial
2020-12-09 09:15:45 +05:30
Harendra Kumar
cb0db668f1
Add benchmark for takeEQ parser
2020-12-06 20:06:28 +00:00
Harendra Kumar
a187768fac
Merge pull request #795 from composewell/terminatin-folds-2
...
Enhance the fold type to capture terminating folds
2020-12-06 10:52:15 +05:30
Harendra Kumar
8625ea5c3c
Enable inspection tests for interposeSuffix bench
2020-12-02 11:53:04 +05:30
Harendra Kumar
8358095df1
Use NOINLINE on some benchmarks
...
These benchmarks degraded because of the terminating folds change
because INLINing was causing loop fusion to break.
2020-12-02 02:21:29 +05:30
adithyaov
0bf8b542ac
Add multiple benchmarks to Fold
2020-12-02 02:21:29 +05:30
Harendra Kumar
170cc10baf
Modify the memory RTS options for Prelude.Parallel
2020-12-02 02:21:29 +05:30
Harendra Kumar
c216af0b09
Break Benchmark.Prelude.Serial into smaller modules
...
This module took a lot of time and 4GB RAM to compile. Its now broken
into smaller module that can be compiled in less than 512 MB RAM.
The memory limits are set based on a 3-pass fusion-plugin.
2020-11-30 06:51:00 +00:00
adithyaov
cfa7fe08ed
Fix and run grouping benchmarks in Prelude.Serial
2020-11-29 09:14:56 +05:30
Harendra Kumar
cd3ce3e503
Fix formatting and docs
...
* Use let clauses to break bigger expressions
* Use `even` as predicate
2020-11-26 17:11:47 +05:30
Ranjeet Ranjan
60d13da0d6
add mapMaybe combinator in Fold
...
Add benchmarking and test case for mapMaybe combinator of Data.Fold
Fix review comments
2020-11-26 17:11:47 +05:30
adithyaov
d09f1ad9b9
Add benchmarks for mkAsync
2020-11-25 22:56:47 +05:30
adithyaov
75b4329cfe
Add benchmarks for (|&) & (|&.)
2020-11-25 22:56:47 +05:30
adithyaov
7fd5ab1bee
Add benchmarks for scan and postscan
2020-11-25 22:56:47 +05:30
adithyaov
3a3f8e7400
Add benchmarks for wAsync and parallel
2020-11-25 22:56:47 +05:30
adithyaov
06b230f27a
Add benchmarks for S.concatFoldableWith and S.concatForFoldableWith
2020-11-25 22:56:47 +05:30
adithyaov
c7b7c2a423
Add benchmarks for a few functions in FileSystem.Handle
...
Benchmarks added:
- write . read
- write
- read
- writeWithBufferOf . readWithBufferOf
- readWithBufferOf
- writeWithBufferOf
- fromBytes . readWithBufferOf
- readWithBufferOf
- write . readChunks (Commented)
- readChunks
- write . writeChunks (Commented)
- writeChunks
2020-11-25 22:56:47 +05:30
adithyaov
7bb8512da5
Add benchmarks for FH.encodeLatin1
...
Rename copyStreamLatin1 to copyStreamLatin1'
copyStreamLatin1' benchmarks FH.encodeLatin1'
copyStreamLatin1 benchmarks FH.encodeLatin1
2020-11-25 22:56:47 +05:30
adithyaov
c5b4838d10
Add benchmarks for minRate, maxRate & constRate (bench:Prelude.Rate)
2020-11-25 22:56:47 +05:30
adithyaov
af872ae7ad
Make structural changes to bench:Prelude.Rate
2020-11-25 22:56:47 +05:30
adithyaov
1a728e2d16
Clean bench:Prelude.Rate
...
Abstract over avgRate and change label values in bench groups
2020-11-25 22:56:47 +05:30
adithyaov
8477487b33
Add multiple micro-benchmarks
...
* bench:FileSystem.Handle
- splitWithSuffix
* bench:Prelude.Serial
- findM
- scanl1M'
- concatMapM
2020-11-25 22:56:47 +05:30
adithyaov
053a38c6a1
Fix naming in benchmarks
...
* bench:Prelude.Serial
- foldrMToStream -> foldrToStream
- scan -> scanl'
* bench:Prelude.ZipSerial
- zip -> zipWith
- zipM -> zipWithM
* bench:Prelude.ZipAsync
- zipAsync -> zipAsyncWith
- zipAsyncM -> zipAsyncWithM
2020-11-25 22:56:47 +05:30
adithyaov
73df67ee93
Fix bug in ArrayOps.hs
...
Remove DATA_PRIM_ARRAY
Add DATA_ARRAY_PRIM & DATA_ARRAY_PRIM_PINNED
Reduce the use of #else in CPP
2020-11-12 09:57:32 +05:30
adithyaov
aced27067f
Change the first argument of concatMapM in unfolds from () to Void
...
Change,
concatMapM :: (b -> m (Unfold m () c)) -> Unfold m a b -> Unfold m a c
to,
concatMapM :: (b -> m (Unfold m Void c)) -> Unfold m a b -> Unfold m a c
2020-11-12 09:57:32 +05:30
Harendra Kumar
30e85477f6
Add a long pattern benchmark (100k chars)
2020-11-08 16:02:05 +05:30
Harendra Kumar
3682981c0f
Add bench prefix example, additional config section
2020-11-04 03:09:49 +05:30
adithyaov
ebbaef79f6
Move benchmark tmp files into benchmark-tmp directory
2020-10-31 12:14:25 +05:30
adithyaov
f57243cc32
Avoid using dd, pipe data directly & truncate it using head
...
dd is confusing to work with and has it's own idiosyncracies.
2020-10-31 12:14:25 +05:30
adithyaov
3a64e63723
Fix enumerateFrom benchmark in bench:Prelude.Serial
2020-10-30 21:53:33 +05:30
Harendra Kumar
6c3f1edfc1
Specify benchmark input file via env var
...
Specifying the input file via an environment variable was broken.
2020-10-28 06:48:40 +05:30
Harendra Kumar
a94ec3688e
Use NoSpecConstr annotation on the list type
...
This is to avoid too many recursive specializations (because we use
-fspec-constr-recursive=16) on the list argument in parselMx', leading
to huge code bloat in the core and requiring a lot of memory to compile.
2020-10-26 23:28:37 +05:30
Harendra Kumar
2bc92ba0dc
Use -Rghc-timing to print ghc timing info
2020-10-26 23:28:37 +05:30
pranaysashank
2a1097fcdf
Fix copyright and author information.
...
Closes #688
2020-10-26 16:47:35 +05:30
Harendra Kumar
c436e3c624
Fix "Invalid byte" on file read
...
We were reading input from a binary file trying to decode it as Char
leading to an invalid byte sequence error.
2020-10-24 15:54:39 +05:30
adithyaov
b1a9af0d7d
Use from-to style instead of take-from in many unfold benchmarks
2020-10-24 15:50:28 +05:30
adithyaov
8e4f68d5ff
Uncomment fromStreamD and run it on n/100 in unfold benchmarks
2020-10-24 15:50:28 +05:30
adithyaov
d3f290b7b3
Move stream filtering into a seperate group in unfold benchmarks
2020-10-24 15:50:28 +05:30
adithyaov
b5da56a18c
Rename o_1_space_combination to o_1_space_zip in unfold benchmarks
2020-10-24 15:50:28 +05:30
adithyaov
1d71e090ba
Merge generational benchmark groups in unfold benchmarks
2020-10-24 15:50:28 +05:30
adithyaov
bda8caccc7
Rename the bench group of input covariant benchmarks accordingly
2020-10-24 15:50:28 +05:30
adithyaov
9018907157
Reorder benchmarks wrt the export structure in Internal.Unfold
2020-10-24 15:50:28 +05:30
adithyaov
2d4ab16dd8
Add informative comments wrt the unfold benchmarks
2020-10-24 15:50:28 +05:30
adithyaov
5d4918cdcb
Make minor indentation changes in Benchmark.Unfold
2020-10-24 15:50:28 +05:30
adithyaov
4a21cbc45d
Complete the set of benchmarks of unfold
2020-10-24 15:50:28 +05:30
adithyaov
ecbf566b1d
Rearrange benchmarks and remove the "serial" from function names
...
Keep nested benchmarks in a seperate group
2020-10-24 15:50:28 +05:30
adithyaov
dcdc716efb
Use a cleaner way to benchmark unfolds
2020-10-24 15:50:28 +05:30
pranaysashank
8061c97a76
Use monadic seed in monadic scanning combinators.
...
- The following functions are updated: scanlM, scanlM',
postscanlM, postscanlM', prescanlM'.
- Update Changelog.md.
2020-10-21 10:49:12 +05:30
adithyaov
875e48f8e8
Add grouping combinators to the benchmarks
2020-10-18 00:06:52 +05:30
adithyaov
a06f8c4bd1
Add enumarate combinators to the serial generation benchmark group
2020-10-18 00:06:52 +05:30
adithyaov
c71888080e
Add micro benchmarks for multiple exposed functions in Prelude
2020-10-18 00:06:52 +05:30
adithyaov
fc25c42ab1
Add micro benchmarks for convering exposed APIs in Fold
...
Benchamrks added:
- drainBy
- foldMapM
- lookup
- sequence
- tee
- distribute
- partition
- unzip
2020-10-18 00:06:52 +05:30
adithyaov
8d6b695ddb
Replace value with size and n with start in bench:Data.Unfold
2020-10-17 21:32:23 +05:30
adithyaov
5004f12409
Add docs & change the signature of replicateM and repeatM
...
This commit also include some other minor changes
2020-10-17 21:32:23 +05:30
adithyaov
07d0609dee
Add additional Unfold benchmarks
2020-10-17 21:32:23 +05:30
Harendra Kumar
a3c3db465f
Add prime sieves to benchmarks
...
Prime sieves are good benchmarks for scan and monad composition.
2020-10-16 21:50:51 +05:30
pranaysashank
25f76d5524
Add new encoding/decoding routines.
...
- Add encodeUtf8_, encodeLatin1_, encodeUtf8', encodeLatin1',
decodeUtf8_, decodeUtf8', decodeUtf8Arrays_, decodeUtf8Arrays'.
- encodeLatin1, encodeUtf8 don't fail when they encounter
invalid characters. Their stricter variants encodeLatin1',
encodeUtf8' do.
- encodeUtf8_, encodeLatin1_ drop the invalid characters.
- decodeUtf8 replaces any invalid character encountered with the
Unicode replacement character where as decodeUtf8' fails.
- decodeUtf8Arrays doesn't fail on invalid characters anymore
it replaces them with the Unicode replacement character.
- Deprecate decodeUtf8Lax, encodeLatin1Lax, encodeUtf8Lax.
- Update Changelog.md.
2020-09-17 12:16:11 +05:30
pranaysashank
ad05792d0b
Deprecate Streamly module and move the exports to Streamly.Prelude.
...
- Deprecate and replace functions:
foldWith => concatFoldableWith
foldMapWith => concatMapFoldableWith
forEachWith => concatForFoldableWith
2020-09-09 20:56:24 +05:30
adithyaov
e218fb9d8f
Deprecate Streamly.Memory.Array
...
According to the new module structure, it should be Streamly.Data.Array.Storable.Foreign
2020-09-04 16:55:16 +05:30
adithyaov
aa1e4e137f
Rename Streamly.Internal.Memory.Array
...
According to the new module structure, it should be Streamly.Internal.Data.Array.Storable.Foreign
2020-09-04 16:55:16 +05:30
adithyaov
4070c13937
Rename Streamly.Internal.Memory.Array.Types
...
According to the new module structure, it should be Streamly.Internal.Data.Array.Storable.Foreign.Types
2020-09-04 16:55:16 +05:30
adithyaov
e3e69a11ea
Rename Streamly.Internal.Memory.Unicode.Array
...
According to the new module structure, it should be Streamly.Internal.Unicode.Array.Char
2020-09-04 16:55:16 +05:30
adithyaov
7d008199aa
Deprecate Streamly.Data.Unicode.Stream
...
According to the new module structure, it should be Streamly.Unicode.Stream
2020-09-04 16:55:16 +05:30
adithyaov
d3325c60f6
Rename Streamly.Internal.Data.Unicode.Stream
...
According to the new module structure, it should be Streamly.Internal.Unicode.Stream
2020-09-04 16:55:16 +05:30
pranaysashank
c8c161c34b
Rename module Internal.Prelude to Internal.Data.Stream.IsStream.
2020-08-24 00:29:25 +05:30
Pranay Sashank
960def155f
Make the finalizer based exception handling routines the default.
...
- Change the handlers for both streams and unfolds.
2020-08-23 11:50:59 +05:30
Harendra Kumar
1639cfde98
Use monadic action to get the initial state
...
In ReaderT/StateT evaluation.
2020-08-19 19:41:08 +05:30
adithyaov
ead1601148
Replace Data.Strict with Data.*.Strict
...
"Streamly.Internal.Data.Strict" is replaced by:
Streamly.Internal.Data.Tuple.Strict
Streamly.Internal.Data.Maybe.Strict
Streamly.Internal.Data.Either.Strict
This commit also has some formatting changes to imports.
2020-08-14 20:25:52 +05:30
pranaysashank
d93ac86607
Drop support for GHC 7.10.3.
2020-08-12 11:24:34 +05:30
Harendra Kumar
ec97cec4d2
Fix the backtrack buffer management for fromParserK
...
This commit results in worse performance because now we are double
buffering once in ParserD and once in ParserK. This can potentially be
fixed but would require bigger changes to unify the backtracking buffer
management for ParserD and ParserK.
2020-08-02 16:26:46 +05:30
adithyaov
ef7c6d9633
Skip building Array.Prim.* modules for ghc < 8.0
...
getSizeofMutableByteArray# does not exist for versions of ghc below 8
2020-07-21 09:13:31 +05:30
adithyaov
4d0631a0c6
Add Data.Array.Prim.Pinned and Data.Array.Prim
...
Respect the new module structure for Internal files
2020-07-21 09:13:31 +05:30
adithyaov
27c3aebbce
Combine all the array benchmarks to reduce duplication
...
Use --stream-size for all the array benchmarks now
Replace the following files:
- benchmark/Streamly/Benchmark/Data/Array.hs
- benchmark/Streamly/Benchmark/Data/ArrayOps.hs
- benchmark/Streamly/Benchmark/Data/Prim/Array.hs
- benchmark/Streamly/Benchmark/Data/Prim/ArrayOps.hs
- benchmark/Streamly/Benchmark/Data/SmallArray.hs
- benchmark/Streamly/Benchmark/Data/SmallArrayOps.hs
- benchmark/Streamly/Benchmark/Memory/Array.hs
- benchmark/Streamly/Benchmark/Memory/ArrayOps.hs
With:
- benchmark/Streamly/Benchmark/Array.hs
- benchmark/Streamly/Benchmark/ArrayOps.hs
2020-07-20 01:44:18 +05:30
Harendra Kumar
f0398ee8b6
Add benchmarking for fromParserK
2020-07-17 03:46:04 +05:30
Harendra Kumar
37f325e4b2
Add some more benchmarks for ParserK
2020-07-17 03:46:04 +05:30
Harendra Kumar
81339c8f8b
Fix comments
2020-07-13 23:58:02 +05:30
Harendra Kumar
09f2fa7cb4
Add the ability to select fields to report
2020-07-09 17:40:27 +05:30
Harendra Kumar
89b9e233ba
Fix inspection tests
2020-07-09 17:40:27 +05:30
Harendra Kumar
bc6b4eed32
Reduce compile time mem util in Handle benchmarks
...
* Split into two modules
* Remove unnecessary INLINE pragmas
2020-07-09 17:40:27 +05:30
Harendra Kumar
0d586750a7
Add INLINE phase annotations on some functions
2020-07-09 16:10:24 +05:30
Harendra Kumar
53504dba3c
Use smaller input files for longer benchmarks
2020-07-09 16:10:01 +05:30
Harendra Kumar
3d033ae915
Reorganize, move the FileIO benchmarks
...
Now they are in FileSystem.Handle module corresponding to the source module
with the same name. Also, now we have them arranged based on space complexity
so that we can apply RTS memory restrictions when running.
Also, now longer benchmarks use a shorter file.
2020-07-08 03:10:09 +05:30
Harendra Kumar
ea79e0f9b7
Add "allocated" and "bytesCopied" fields
...
"allocated" is much more stable for regression comparisons as it stays the same
whereas "time" varies based on various factors like cpu frequency, other things
running on the computer, context switches etc.
bytesCopied is a measure of long lived data being retained across GCs, which is
also a good measure of performance.
2020-07-07 16:23:06 +05:30
pranaysashank
202f674462
Change the signature of foldlM' to use a monadic seed.
...
- Also change usages of foldlM' in tests and benchmarks.
2020-07-07 14:17:44 +05:30