Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore(deps): update rust crate rand to 0.9.0 (#15129)
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [rand](https://rust-random.github.io/book) ([source](https://redirect.github.com/rust-random/rand)) | workspace.dependencies | minor | `0.8.5` -> `0.9.0` | --- ### Release Notes <details> <summary>rust-random/rand (rand)</summary> ### [`v0.9.0`](https://redirect.github.com/rust-random/rand/blob/HEAD/CHANGELOG.md#090---2025-01-27) [Compare Source](https://redirect.github.com/rust-random/rand/compare/0.8.5...0.9.0) ##### Security and unsafe - Policy: "rand is not a crypto library" ([#​1514](https://redirect.github.com/rust-random/rand/issues/1514)) - Remove fork-protection from `ReseedingRng` and `ThreadRng`. Instead, it is recommended to call `ThreadRng::reseed` on fork. ([#​1379](https://redirect.github.com/rust-random/rand/issues/1379)) - Use `zerocopy` to replace some `unsafe` code ([#​1349](https://redirect.github.com/rust-random/rand/issues/1349), [#​1393](https://redirect.github.com/rust-random/rand/issues/1393), [#​1446](https://redirect.github.com/rust-random/rand/issues/1446), [#​1502](https://redirect.github.com/rust-random/rand/issues/1502)) ##### Dependencies - Bump the MSRV to 1.63.0 ([#​1207](https://redirect.github.com/rust-random/rand/issues/1207), [#​1246](https://redirect.github.com/rust-random/rand/issues/1246), [#​1269](https://redirect.github.com/rust-random/rand/issues/1269), [#​1341](https://redirect.github.com/rust-random/rand/issues/1341), [#​1416](https://redirect.github.com/rust-random/rand/issues/1416), [#​1536](https://redirect.github.com/rust-random/rand/issues/1536)); note that 1.60.0 may work for dependents when using `--ignore-rust-version` - Update to `rand_core` v0.9.0 ([#​1558](https://redirect.github.com/rust-random/rand/issues/1558)) ##### Features - Support `std` feature without `getrandom` or `rand_chacha` ([#​1354](https://redirect.github.com/rust-random/rand/issues/1354)) - Enable feature `small_rng` by default ([#​1455](https://redirect.github.com/rust-random/rand/issues/1455)) - Remove implicit feature `rand_chacha`; use `std_rng` instead. ([#​1473](https://redirect.github.com/rust-random/rand/issues/1473)) - Rename feature `serde1` to `serde` ([#​1477](https://redirect.github.com/rust-random/rand/issues/1477)) - Rename feature `getrandom` to `os_rng` ([#​1537](https://redirect.github.com/rust-random/rand/issues/1537)) - Add feature `thread_rng` ([#​1547](https://redirect.github.com/rust-random/rand/issues/1547)) ##### API changes: rand_core traits - Add fn `RngCore::read_adapter` implementing `std::io::Read` ([#​1267](https://redirect.github.com/rust-random/rand/issues/1267)) - Add trait `CryptoBlockRng: BlockRngCore`; make `trait CryptoRng: RngCore` ([#​1273](https://redirect.github.com/rust-random/rand/issues/1273)) - Add traits `TryRngCore`, `TryCryptoRng` ([#​1424](https://redirect.github.com/rust-random/rand/issues/1424), [#​1499](https://redirect.github.com/rust-random/rand/issues/1499)) - Rename `fn SeedableRng::from_rng` -> `try_from_rng` and add infallible variant `fn from_rng` ([#​1424](https://redirect.github.com/rust-random/rand/issues/1424)) - Rename `fn SeedableRng::from_entropy` -> `from_os_rng` and add fallible variant `fn try_from_os_rng` ([#​1424](https://redirect.github.com/rust-random/rand/issues/1424)) - Add bounds `Clone` and `AsRef` to associated type `SeedableRng::Seed` ([#​1491](https://redirect.github.com/rust-random/rand/issues/1491)) ##### API changes: Rng trait and top-level fns - Rename fn `rand::thread_rng()` to `rand::rng()` and remove from the prelude ([#​1506](https://redirect.github.com/rust-random/rand/issues/1506)) - Remove fn `rand::random()` from the prelude ([#​1506](https://redirect.github.com/rust-random/rand/issues/1506)) - Add top-level fns `random_iter`, `random_range`, `random_bool`, `random_ratio`, `fill` ([#​1488](https://redirect.github.com/rust-random/rand/issues/1488)) - Re-introduce fn `Rng::gen_iter` as `random_iter` ([#​1305](https://redirect.github.com/rust-random/rand/issues/1305), [#​1500](https://redirect.github.com/rust-random/rand/issues/1500)) - Rename fn `Rng::gen` to `random` to avoid conflict with the new `gen` keyword in Rust 2024 ([#​1438](https://redirect.github.com/rust-random/rand/issues/1438)) - Rename fns `Rng::gen_range` to `random_range`, `gen_bool` to `random_bool`, `gen_ratio` to `random_ratio` ([#​1505](https://redirect.github.com/rust-random/rand/issues/1505)) - Annotate panicking methods with `#[track_caller]` ([#​1442](https://redirect.github.com/rust-random/rand/issues/1442), [#​1447](https://redirect.github.com/rust-random/rand/issues/1447)) ##### API changes: RNGs - Fix `<SmallRng as SeedableRng>::Seed` size to 256 bits ([#​1455](https://redirect.github.com/rust-random/rand/issues/1455)) - Remove first parameter (`rng`) of `ReseedingRng::new` ([#​1533](https://redirect.github.com/rust-random/rand/issues/1533)) ##### API changes: Sequences - Split trait `SliceRandom` into `IndexedRandom`, `IndexedMutRandom`, `SliceRandom` ([#​1382](https://redirect.github.com/rust-random/rand/issues/1382)) - Add `IndexedRandom::choose_multiple_array`, `index::sample_array` ([#​1453](https://redirect.github.com/rust-random/rand/issues/1453), [#​1469](https://redirect.github.com/rust-random/rand/issues/1469)) ##### API changes: Distributions: renames - Rename module `rand::distributions` to `rand::distr` ([#​1470](https://redirect.github.com/rust-random/rand/issues/1470)) - Rename distribution `Standard` to `StandardUniform` ([#​1526](https://redirect.github.com/rust-random/rand/issues/1526)) - Move `distr::Slice` -> `distr::slice::Choose`, `distr::EmptySlice` -> `distr::slice::Empty` ([#​1548](https://redirect.github.com/rust-random/rand/issues/1548)) - Rename trait `distr::DistString` -> `distr::SampleString` ([#​1548](https://redirect.github.com/rust-random/rand/issues/1548)) - Rename `distr::DistIter` -> `distr::Iter`, `distr::DistMap` -> `distr::Map` ([#​1548](https://redirect.github.com/rust-random/rand/issues/1548)) ##### API changes: Distributions - Relax `Sized` bound on `Distribution<T> for &D` ([#​1278](https://redirect.github.com/rust-random/rand/issues/1278)) - Remove impl of `Distribution<Option<T>>` for `StandardUniform` ([#​1526](https://redirect.github.com/rust-random/rand/issues/1526)) - Let distribution `StandardUniform` support all `NonZero*` types ([#​1332](https://redirect.github.com/rust-random/rand/issues/1332)) - Fns `{Uniform, UniformSampler}::{new, new_inclusive}` return a `Result` (instead of potentially panicking) ([#​1229](https://redirect.github.com/rust-random/rand/issues/1229)) - Distribution `Uniform` implements `TryFrom` instead of `From` for ranges ([#​1229](https://redirect.github.com/rust-random/rand/issues/1229)) - Add `UniformUsize` ([#​1487](https://redirect.github.com/rust-random/rand/issues/1487)) - Remove support for generating `isize` and `usize` values with `StandardUniform`, `Uniform` (except via `UniformUsize`) and `Fill` and usage as a `WeightedAliasIndex` weight ([#​1487](https://redirect.github.com/rust-random/rand/issues/1487)) - Add impl `DistString` for distributions `Slice<char>` and `Uniform<char>` ([#​1315](https://redirect.github.com/rust-random/rand/issues/1315)) - Add fn `Slice::num_choices` ([#​1402](https://redirect.github.com/rust-random/rand/issues/1402)) - Add fn `p()` for distribution `Bernoulli` to access probability ([#​1481](https://redirect.github.com/rust-random/rand/issues/1481)) ##### API changes: Weighted distributions - Add `pub` module `rand::distr::weighted`, moving `WeightedIndex` there ([#​1548](https://redirect.github.com/rust-random/rand/issues/1548)) - Add trait `weighted::Weight`, allowing `WeightedIndex` to trap overflow ([#​1353](https://redirect.github.com/rust-random/rand/issues/1353)) - Add fns `weight, weights, total_weight` to distribution `WeightedIndex` ([#​1420](https://redirect.github.com/rust-random/rand/issues/1420)) - Rename enum `WeightedError` to `weighted::Error`, revising variants ([#​1382](https://redirect.github.com/rust-random/rand/issues/1382)) and mark as `#[non_exhaustive]` ([#​1480](https://redirect.github.com/rust-random/rand/issues/1480)) ##### API changes: SIMD - Switch to `std::simd`, expand SIMD & docs ([#​1239](https://redirect.github.com/rust-random/rand/issues/1239)) ##### Reproducibility-breaking changes - Make `ReseedingRng::reseed` discard remaining data from the last block generated ([#​1379](https://redirect.github.com/rust-random/rand/issues/1379)) - Change fn `SmallRng::seed_from_u64` implementation ([#​1203](https://redirect.github.com/rust-random/rand/issues/1203)) - Allow `UniformFloat::new` samples and `UniformFloat::sample_single` to yield `high` ([#​1462](https://redirect.github.com/rust-random/rand/issues/1462)) - Fix portability of distribution `Slice` ([#​1469](https://redirect.github.com/rust-random/rand/issues/1469)) - Make `Uniform` for `usize` portable via `UniformUsize` ([#​1487](https://redirect.github.com/rust-random/rand/issues/1487)) - Fix `IndexdRandom::choose_multiple_weighted` for very small seeds and optimize for large input length / low memory ([#​1530](https://redirect.github.com/rust-random/rand/issues/1530)) ##### Reproducibility-breaking optimisations - Optimize fn `sample_floyd`, affecting output of `rand::seq::index::sample` and `rand::seq::SliceRandom::choose_multiple` ([#​1277](https://redirect.github.com/rust-random/rand/issues/1277)) - New, faster algorithms for `IteratorRandom::choose` and `choose_stable` ([#​1268](https://redirect.github.com/rust-random/rand/issues/1268)) - New, faster algorithms for `SliceRandom::shuffle` and `partial_shuffle` ([#​1272](https://redirect.github.com/rust-random/rand/issues/1272)) - Optimize distribution `Uniform`: use Canon's method (single sampling) / Lemire's method (distribution sampling) for faster sampling (breaks value stability; [#​1287](https://redirect.github.com/rust-random/rand/issues/1287)) - Optimize fn `sample_single_inclusive` for floats (+~20% perf) ([#​1289](https://redirect.github.com/rust-random/rand/issues/1289)) ##### Other optimisations - Improve `SmallRng` initialization performance ([#​1482](https://redirect.github.com/rust-random/rand/issues/1482)) - Optimise SIMD widening multiply ([#​1247](https://redirect.github.com/rust-random/rand/issues/1247)) ##### Other - Add `Cargo.lock.msrv` file ([#​1275](https://redirect.github.com/rust-random/rand/issues/1275)) - Reformat with `rustfmt` and enforce ([#​1448](https://redirect.github.com/rust-random/rand/issues/1448)) - Apply Clippy suggestions and enforce ([#​1448](https://redirect.github.com/rust-random/rand/issues/1448), [#​1474](https://redirect.github.com/rust-random/rand/issues/1474)) - Move all benchmarks to new `benches` crate ([#​1329](https://redirect.github.com/rust-random/rand/issues/1329), [#​1439](https://redirect.github.com/rust-random/rand/issues/1439)) and migrate to Criterion ([#​1490](https://redirect.github.com/rust-random/rand/issues/1490)) ##### Documentation - Improve `ThreadRng` related docs ([#​1257](https://redirect.github.com/rust-random/rand/issues/1257)) - Docs: enable experimental `--generate-link-to-definition` feature ([#​1327](https://redirect.github.com/rust-random/rand/issues/1327)) - Better doc of crate features, use `doc_auto_cfg` ([#​1411](https://redirect.github.com/rust-random/rand/issues/1411), [#​1450](https://redirect.github.com/rust-random/rand/issues/1450)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 5am on the first day of the month" (UTC), 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. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/rust-lang/cargo). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNDUuMCIsInVwZGF0ZWRJblZlciI6IjM5LjE0NS4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
- Loading branch information