Commit Graph

2079 Commits

Author SHA1 Message Date
Harendra Kumar
b85002bddb Simplify the implementation
* Do not use a seperate traversal of dirs, instead just call addToWatch
  recursively.
* Keep rel path of subdir in the map instead of keeping absolute path
* Keep the same default for recursive watch on Windows/Linux
* Use watchTreesWith to implement watchPathsWith using recursive flag

Refactor, add some todos for test code
2020-12-02 07:39:05 +00:00
Ranjeet Ranjan
f00008b321 Add recursive directory tree events in Linux 2020-12-02 07:39:05 +00:00
Harendra Kumar
8625ea5c3c Enable inspection tests for interposeSuffix bench 2020-12-02 11:53:04 +05:30
Harendra Kumar
d6e7c28c12 Support branch specific builds using git-cabal 2020-11-30 20:53:25 +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
Harendra Kumar
9444e3e0b9 Use watchTreesWith to implement watchPathsWith 2020-11-26 09:29:50 +05:30
Harendra Kumar
585b825d78 Remove references to path encoding
There is no specific encoding of path required, it is a contract between
the user and the file system, we are just a broker in the middle.
2020-11-26 09:29:50 +05:30
Harendra Kumar
0bd72c52e3 Update documentation of stripPrefix 2020-11-26 09:29:50 +05:30
Harendra Kumar
0c570febdd Add scripts to generate hscope db and tags 2020-11-26 09:27:44 +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
Harendra Kumar
f10c944b55 Use benchmark and fusion-plugin deps by default 2020-11-24 09:51:56 +05:30
pranaysashank
f72dcaf493 Add names to jobs in Circle CI. 2020-11-18 16:34:36 +05:30
pranaysashank
906a07ea5b Move travis builds to circle ci 2020-11-17 17:51:04 +05:30
pranaysashank
b339cf8f73 Fix build on 32 bit. 2020-11-17 17:50:30 +05:30
pranaysashank
74c5351639 Fix hlint errors. 2020-11-17 17:50:30 +05:30
pranaysashank
8016730649 Rename test modules to match with corresponding source modules. 2020-11-17 17:50:29 +05:30
pranaysashank
1c3ce1607d Rename all test-suites to be similar to corresponding modules. 2020-11-17 17:50:29 +05:30
Harendra Kumar
862c47ffc9 Improve documentation of exception handling ops 2020-11-13 19:50:03 +05:30
Harendra Kumar
fa492b8029 Refactor splitOnSuffixSeq
* Deduplicate some code
* Reformat some parts esp. multi-way if statements
* Change branches in some cases to keep the likely branch first
2020-11-12 18:26:18 +05:30
Harendra Kumar
e399354299 Rename splitSuffixOn to splitOnSuffixSeq
To make it consistent with naming in the IsStream module.
2020-11-12 18:26:18 +05:30
Harendra Kumar
cad13b0038 Make splitOnSuffixSeq fuse
By splitting the KRInit state into two states to factor out the
recursive "go" function in a separate state.
2020-11-12 18:26:18 +05:30
adithyaov
a4291b0119 Fix test description of test:Prelude.Serial.splitOnSuffixSeq 2020-11-12 18:26:18 +05:30
adithyaov
2720a7e3c7 Reimplement splitSuffixOnSeq (StreamD.splitSuffixOn) 2020-11-12 18:26:18 +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
8a93c0c6ea Add default.nix for nix shell/build 2020-11-09 16:24:22 +05:30
Harendra Kumar
40e8275682 Add function to fold n items in the ring 2020-11-08 16:02:05 +05:30
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