The new methods IndexedParallelIterator::by_exponential_blocks and
by_uniform_blocks allow processing items in smaller groups at a time.
The new iter::walk_tree, walk_tree_prefix, and walk_tree_postfix
functions enable custom parallel iteration over tree-like structures.
The new method ParallelIterator::collect_vec_list returns items as a linked
list of vectors, which is an efficient mode of parallel collection used by
many of the internal implementations of collect.
The new methods ParallelSliceMut::par_split_inclusive_mut,
ParallelSlice::par_split_inclusive, and
ParallelString::par_split_inclusive all work like a normal split but
keeping the separator as part of the left slice.
The new ParallelString::par_split_ascii_whitespace splits only on ASCII
whitespace, which is faster than including Unicode multi-byte whitespace.
OsString now implements FromParallelIterator<_> and ParallelExtend<_>
for a few item types similar to the standard FromIterator and Extend.
The internal Pattern trait for string methods is now implemented for
[char; N] and &[char; N], matching any of the given characters.
Release rayon 1.8.1 / rayon-core 1.12.1 (2024-01-17)
The new "web_spin_lock" crate feature makes mutexes spin on the main
browser thread in WebAssembly, rather than suffer an error about forbidden
atomics.wait if they were to block in that context. Thanks @RReverser!
Release rayon 1.8.0 / rayon-core 1.12.0 (2023-09-20)
The minimum supported rustc is now 1.63.
Added ThreadPoolBuilder::use_current_thread to use the builder thread as
part of the new thread pool. That thread does not run the pool's main loop,
but it may participate in work-stealing if it yields to rayon in some way.
Implemented FromParallelIterator<T> for Box<[T]>, Rc<[T]>, and
Arc<[T]>, as well as FromParallelIterator<Box<str>> and
ParallelExtend<Box<str>> for String.
ThreadPoolBuilder::build_scoped now uses std::thread::scope.
The default number of threads is now determined using
std::thread::available_parallelism instead of the num_cpus crate.
The internal logging facility has been removed, reducing bloat for all users.
Many smaller performance tweaks and documentation updates.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps rayon from 1.7.0 to 1.9.0.
Changelog
Sourced from rayon's changelog.
Commits
dc13cb7
Merge #81067eeea6
Release rayon 1.5.0 / rayon-core 1.9.04828f30
Merge #808eeb0d1a
update ci/compat-Cargo.lock12f0d20
Update glium so that rayon-demo runs on Gnome Wayland1f069d7
Merge #8079691328
Use Iterator::copiede81835c
Update crossbeam dependencies (requires Rust 1.36)5b3d917
Merge #8045c55033
Release rayon 1.4.1Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show