This repository has been archived by the owner on Mar 17, 2023. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.3.0
->1.7.0
Release Notes
rayon-rs/rayon
v1.7.0
Compare Source
rustc
is now 1.59.ParallelIterator::take_any
andskip_any
methods work likeunordered
IndexedParallelIterator::take
andskip
, counting items inwhatever order they are visited in parallel.
ParallelIterator::take_any_while
andskip_any_while
methods worklike unordered
Iterator::take_while
andskip_while
, which previously hadno parallel equivalent. The "while" condition may be satisfied from anywhere
in the parallel iterator, affecting all future items regardless of position.
yield_now
andyield_local
functions will cooperatively yieldexecution to Rayon, either trying to execute pending work from the entire
pool or from just the local deques of the current thread, respectively.
v1.6.1
Compare Source
par_bridge
to only pull one item at a time from the iterator,without batching. Threads that are waiting for iterator items will now block
appropriately rather than spinning CPU. (Thanks @njaard!)
par_bridge
, so iterators that alsoinvoke rayon will not cause mutex recursion deadlocks.
v1.6.0
Compare Source
rustc
is now 1.56.IndexedParallelIterator::fold_chunks
andfold_chunks_with
methodswork like
ParallelIterator::fold
andfold_with
with fixed-size chunks ofitems. This may be useful for predictable batching performance, without the
allocation overhead of
IndexedParallelIterator::chunks
.These run at a sort of reduced priority after each thread has exhausted their
local work queue, but before they attempt work-stealing from other threads.
broadcast
function andThreadPool::broadcast
method willblock until completion, returning a
Vec
of all return values.spawn_broadcast
function and methods onThreadPool
,Scope
,and
ScopeFifo
will run detached, without blocking the current thread.#[track_caller]
to report the caller's location.vec::Drain
when given an empty range.Contributors
Thanks to all of the contributors for this release!
v1.5.3
Compare Source
ParallelSliceMut::par_sort_by_cached_key
is a stable sort that cachesthe keys for each item -- a parallel version of
slice::sort_by_cached_key
.v1.5.2
Compare Source
ParallelSlice::par_rchunks()
andpar_rchunks_exact()
iterateslice chunks in reverse, aligned the against the end of the slice if the
length is not a perfect multiple of the chunk size. The new
ParallelSliceMut::par_rchunks_mut()
andpar_rchunks_exact_mut()
are thesame for mutable slices.
ParallelIterator::try_*
methods now supportstd::ops::ControlFlow
andstd::task::Poll
items, mirroring the unstableTry
implementations in thestandard library.
ParallelString
pattern-based methods now support&[char]
patterns,which match when any character in that slice is found in the string.
thread pool, respecting internal bit limits that already existed. The current
maximum is publicly available from the new function
max_num_threads()
.cargo miri
.Contributors
Thanks to all of the contributors for this release!
v1.5.1
Compare Source
in_place_scope
andin_place_scope_fifo
are variations ofscope
and
scope_fifo
, running the initial non-Send
callback directly on thecurrent thread, rather than moving execution to the thread pool.
IntoParallelIterator
.FromParallelIterator
make it possible tocollect
complicated nestings of items.
FromParallelIterator<(A, B)> for (FromA, FromB)
works likeunzip
.FromParallelIterator<Either<L, R>> for (A, B)
works likepartition_map
.Range
andRangeInclusive
.FromParallelIterator
andParallelExtend
forVec<T>
now usesMaybeUninit<T>
internally to avoid creating anyreferences to uninitialized data.
ParallelBridge
fixed a bug with threads missing available work.Contributors
Thanks to all of the contributors for this release!
v1.5.0
Compare Source
rustc
is now 1.36.Contributors
Thanks to all of the contributors for this release!
v1.4.1
Compare Source
flat_map_iter
andflatten_iter
methods can be used to flattensequential iterators, which may perform better in cases that don't need the
nested parallelism of
flat_map
andflatten
.par_drain
method is a parallel version of the standarddrain
forcollections, removing items while keeping the original capacity. Collections
that implement this through
ParallelDrainRange
support draining items fromarbitrary index ranges, while
ParallelDrainFull
always drains everything.positions
method finds all items that match the given predicate andreturns their indices in a new iterator.
v1.4.0
Compare Source
new work and for notifications of completed stolen work, reducing wasteful
CPU usage in idle threads.
IntoParallelIterator for Range<char>
andRangeInclusive<char>
with the same iteration semantics as Rust 1.45.
scope
closure.Contributors
Thanks to all of the contributors for this release!
v1.3.1
Compare Source
Vec
now drops any partial writes while unwinding,rather than just leaking them. If dropping also panics, Rust will abort.
IndexedParallelIterator::step_by()
adapts an iterator to stepthrough items by the given count, like
Iterator::step_by()
.ParallelSlice::par_chunks_exact()
and mutable equivalentParallelSliceMut::par_chunks_exact_mut()
ensure that the chunks always havethe exact length requested, leaving any remainder separate, like the slice
methods
chunks_exact()
andchunks_exact_mut()
.Contributors
Thanks to all of the contributors for this release!
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.