-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make mapreduce(..., withprogress(...)) etc. work without transducers #72
Conversation
Codecov Report
@@ Coverage Diff @@
## master #72 +/- ##
==========================================
+ Coverage 90.03% 90.31% +0.28%
==========================================
Files 24 24
Lines 1455 1456 +1
==========================================
+ Hits 1310 1315 +5
+ Misses 145 141 -4
Continue to review full report at Codecov.
|
(Hopefully |
Merging this in preparation to #67 |
Benchmark resultJudge resultBenchmark Report for /home/runner/work/Transducers.jl/Transducers.jlJob Properties
ResultsA ratio greater than
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfoTarget
Baseline
Target resultBenchmark Report for /home/runner/work/Transducers.jl/Transducers.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Baseline resultBenchmark Report for /home/runner/work/Transducers.jl/Transducers.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Runtime information
|
Multi-thread benchmark resultJudge resultBenchmark Report for /home/runner/work/Transducers.jl/Transducers.jlJob Properties
ResultsA ratio greater than
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfoTarget
Baseline
Target resultBenchmark Report for /home/runner/work/Transducers.jl/Transducers.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Baseline resultBenchmark Report for /home/runner/work/Transducers.jl/Transducers.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Runtime information
|
This PR adds `foldxl`, `foldxt` and `foldxd` as the new (experimental) entry points for calling the extended folds defined in Transducers.jl. The plan is to deprecate `reduce` and `dreduce` in favor of `foldxt` and `foldxd`. * Motivation for dedicated entry points Often times I need to add `Map(identity)` just to dispatch to the fold defined in Transducers.jl (e.g, `foldl(TeeRF(min, max), Map(identity), xs)`). Adding Transducers.jl-specific entry points like `foldxd` makes `Map(identity)` unnecessary. Furthermore, decoupling entry point from `Base.foldl` let us have a curried version `itr |> xf |> foldxl(+)` which is quite useful with the new `|>` pattern. * Motivation for deprecating `reduce` * As of #72, `sum(foldable)` calls `foldl(add_sum, foldable)` and not `reduce(add_sum, foldable)`. This could be a bit surprising since `sum` usually calls `reduce`. * The `Base` implementation of `reduce` is not threaded. So, using it for calling multi-threaded implementation can be confusing.
It also makes
sum(withprogress(...))
etc. work.Originally a part of #66. Not sure if it is worth doing it (esp. disambiguation).
Commit Message
Make mapreduce(..., withprogress(...)) etc. work without transducers (#72)