Commit Graph

2188 Commits

Author SHA1 Message Date
adithyaov
e49a37d8b4 Bug fix in StreamD.splitOnSeq karp-rabin match 2020-11-08 16:02:05 +05:30
adithyaov
e57424d1bc Add Ring.startOf that returns the ringStart as a Ptr 2020-11-08 16:02:05 +05:30
Harendra Kumar
0463b799a0 Optimize (loopify) short pattern case 2020-11-08 16:02:05 +05:30
Harendra Kumar
2ca6d2a325 Refactor splitOn and make it fuse 2020-11-08 16:02:05 +05:30
Harendra Kumar
924d78e8e6 Use a recursive local loop inside step function
Though now, the loop does not fuse and earlier it fused completely. The
fused loop is much more inefficient.

Improves the performance by 3x, possibly due to less amount of state
being threaded around the loop.
2020-11-08 16:02:05 +05:30
Harendra Kumar
a2a589e54e Use strictness annotation on ring head pointer
The ring head Ptr was being allocated in the loop causing 16x
allocations compared to when strictness annotation is used.
2020-11-08 16:02:05 +05:30
Harendra Kumar
29ebe7e00f Port the changed impl of splitOn to master branch 2020-11-08 16:02:05 +05:30
Harendra Kumar
30e85477f6 Add a long pattern benchmark (100k chars) 2020-11-08 16:02:05 +05:30
adithyaov
2ae488776b Rename functions and make structural adjustments in Prelude.Serial 2020-11-06 05:53:13 +05:30
adithyaov
92ff130caf Add S.intercalate along with List.intercalate in seq splitting tests 2020-11-06 05:53:13 +05:30
adithyaov
d644962284 Add splitOnSuffixSeq property tests 2020-11-06 05:53:13 +05:30
adithyaov
aaae284415 Abstract out the splitOnSeq property tests 2020-11-06 05:53:13 +05:30
Harendra Kumar
6c27236476 Add fusion/step function guidelines
Add debgugging notes.
2020-11-04 03:13:00 +05:30
Harendra Kumar
7755f29424 Add NOINLINE optimization strategy 2020-11-04 03:13:00 +05:30
Harendra Kumar
016eef11d7 Add guidelines for writing optimized code 2020-11-04 03:13:00 +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
ea40591785 Enable splitOnSeq tests
These tests were already written but commented out.
2020-10-30 07:52:29 +05:30
adithyaov
7e3f44d8b5 Get rid of unecessary argument & extend --help with --raw
build_report_progs does not need an argument
2020-10-28 23:49:16 +05:30
adithyaov
1820919c73 Fix haddock & add tests for sequence split combinators
Fix haddock for spliOnSuffixSeq
Add tests for splitOnSeq & spliOnSuffixSeq
2020-10-28 06:49:39 +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
pranaysashank
3999320dbe Update Maintainers guide. 2020-10-27 21:24:40 +05:30
pranaysashank
d65f2b4045 Move examples to streamly-examples repo.
Closes #684
2020-10-27 21:24:40 +05:30
Harendra Kumar
c54581ee95 Improve performance of parseMany
1. Make the parser state strict so that it can fuse.
2. Use special paths for "Continue 0" and "Done 0" cases

Overall improvement from 440 us (6GB allocations) to 175 us (22 MB
allocations).
2020-10-27 06:08:41 +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
Harendra Kumar
24a5d11be6 Use takeEQ instead of take parser 2020-10-26 21:13:07 +05:30
pranaysashank
2a1097fcdf Fix copyright and author information.
Closes #688
2020-10-26 16:47:35 +05:30
pranaysashank
987a19f04d Use a common-stanza for test dependencies.
Closes #683
2020-10-26 16:47:35 +05:30
pranaysashank
6f4fd8d4a6 Add signature change annotations to foldlM', concatMapWith. 2020-10-26 14:12:19 +05:30
pranaysashank
69396964f1 Fix smapM.
Closes #729.
2020-10-26 14:12:19 +05:30
pranaysashank
6da528b9bb Hide tests failing on CI behind DEVBUILD flag.
Closes #738
2020-10-26 14:12:19 +05:30
Harendra Kumar
c213835524 Use a "bash" shell from PATH
In case of nix environment we may be using bash from non-standard path.
2020-10-24 15:55:21 +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
adithyaov
603a722ba1 Make variable naming a little more meaningful in unfold tests 2020-10-24 15:50:28 +05:30
adithyaov
a2d35d9a3a Modify the argument order of testUnfold-ish helpers & add some docs 2020-10-24 15:50:28 +05:30