Update Rust crate rand to 0.9 #85
Open
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:
0.7->0.9Release Notes
rust-random/rand (rand)
v0.9.2Compare Source
Deprecated
rand::rngs::mockmodule andStepRnggenerator (#1634)Additions
WeightedIndex<usize>(de)serialization (#1646)v0.9.1Compare Source
Security and unsafe
zerocopydependency fromrand(#1579)Fixes
simd_supportfor recent nightly rust (#1586)Changes
fn rand::seq::index::sample_weightedandfn IndexedRandom::choose_multiple_weightedto return fewer thanamountresults (#1623), reverting an undocumented change (#1382) to the previous release.Additions
rand::distr::Alphabeticdistribution. (#1587)rand_core(#1604)v0.9.0Compare Source
Security and unsafe
ReseedingRngandThreadRng. Instead, it is recommended to callThreadRng::reseedon fork. (#1379)zerocopyto replace someunsafecode (#1349, #1393, #1446, #1502)Dependencies
--ignore-rust-versionrand_corev0.9.0 (#1558)Features
stdfeature withoutgetrandomorrand_chacha(#1354)small_rngby default (#1455)rand_chacha; usestd_rnginstead. (#1473)serde1toserde(#1477)getrandomtoos_rng(#1537)thread_rng(#1547)API changes: rand_core traits
RngCore::read_adapterimplementingstd::io::Read(#1267)CryptoBlockRng: BlockRngCore; maketrait CryptoRng: RngCore(#1273)TryRngCore,TryCryptoRng(#1424, #1499)fn SeedableRng::from_rng->try_from_rngand add infallible variantfn from_rng(#1424)fn SeedableRng::from_entropy->from_os_rngand add fallible variantfn try_from_os_rng(#1424)CloneandAsRefto associated typeSeedableRng::Seed(#1491)API changes: Rng trait and top-level fns
rand::thread_rng()torand::rng()and remove from the prelude (#1506)rand::random()from the prelude (#1506)random_iter,random_range,random_bool,random_ratio,fill(#1488)Rng::gen_iterasrandom_iter(#1305, #1500)Rng::gentorandomto avoid conflict with the newgenkeyword in Rust 2024 (#1438)Rng::gen_rangetorandom_range,gen_booltorandom_bool,gen_ratiotorandom_ratio(#1505)#[track_caller](#1442, #1447)API changes: RNGs
<SmallRng as SeedableRng>::Seedsize to 256 bits (#1455)rng) ofReseedingRng::new(#1533)API changes: Sequences
SliceRandomintoIndexedRandom,IndexedMutRandom,SliceRandom(#1382)IndexedRandom::choose_multiple_array,index::sample_array(#1453, #1469)API changes: Distributions: renames
rand::distributionstorand::distr(#1470)StandardtoStandardUniform(#1526)distr::Slice->distr::slice::Choose,distr::EmptySlice->distr::slice::Empty(#1548)distr::DistString->distr::SampleString(#1548)distr::DistIter->distr::Iter,distr::DistMap->distr::Map(#1548)API changes: Distributions
Sizedbound onDistribution<T> for &D(#1278)Distribution<Option<T>>forStandardUniform(#1526)StandardUniformsupport allNonZero*types (#1332){Uniform, UniformSampler}::{new, new_inclusive}return aResult(instead of potentially panicking) (#1229)UniformimplementsTryFrominstead ofFromfor ranges (#1229)UniformUsize(#1487)isizeandusizevalues withStandardUniform,Uniform(except viaUniformUsize) andFilland usage as aWeightedAliasIndexweight (#1487)DistStringfor distributionsSlice<char>andUniform<char>(#1315)Slice::num_choices(#1402)p()for distributionBernoullito access probability (#1481)API changes: Weighted distributions
pubmodulerand::distr::weighted, movingWeightedIndexthere (#1548)weighted::Weight, allowingWeightedIndexto trap overflow (#1353)weight, weights, total_weightto distributionWeightedIndex(#1420)WeightedErrortoweighted::Error, revising variants (#1382) and mark as#[non_exhaustive](#1480)API changes: SIMD
std::simd, expand SIMD & docs (#1239)Reproducibility-breaking changes
ReseedingRng::reseeddiscard remaining data from the last block generated (#1379)SmallRng::seed_from_u64implementation (#1203)UniformFloat::newsamples andUniformFloat::sample_singleto yieldhigh(#1462)Slice(#1469)Uniformforusizeportable viaUniformUsize(#1487)IndexdRandom::choose_multiple_weightedfor very small seeds and optimize for large input length / low memory (#1530)Reproducibility-breaking optimisations
sample_floyd, affecting output ofrand::seq::index::sampleandrand::seq::SliceRandom::choose_multiple(#1277)IteratorRandom::chooseandchoose_stable(#1268)SliceRandom::shuffleandpartial_shuffle(#1272)Uniform: use Canon's method (single sampling) / Lemire's method (distribution sampling) for faster sampling (breaks value stability; #1287)sample_single_inclusivefor floats (+~20% perf) (#1289)Other optimisations
SmallRnginitialization performance (#1482)Other
Cargo.lock.msrvfile (#1275)rustfmtand enforce (#1448)benchescrate (#1329, #1439) and migrate to Criterion (#1490)Documentation
ThreadRngrelated docs (#1257)--generate-link-to-definitionfeature (#1327)doc_auto_cfg(#1411, #1450)v0.8.5Compare Source
Fixes
no_std(#1173)libc::pthread_atforkreturn value with panic on error (#1178)ReseedingRngis used from a fork handler (#1178)slice_partition_at_indexfeature (#1215)simd_support: updatepacked_simd(#1216)Rngs
StdRng: Switch from HC128 to ChaCha12 on emscripten (#1142).We now use ChaCha12 on all platforms.
Documentation
v0.8.4Compare Source
Additions
CloneandCopyforAlphanumeric(#1126)Distribution::mapto derive a distribution using a closure (#1129)Slicedistribution (#1107)DistStringtrait with impls forStandardandAlphanumeric(#1133)Other
Uniformfloat distributions for easier debugging of non-finite arguments(#1094, #1108)
Uniformfloat distributions (#1108)rngs::adapter::ReadRng(#1130)v0.8.3Compare Source
Fixes
no-std+allocbuild by gatingchoose_multiple_weightedonstd(#1088)v0.8.2Compare Source
Fixes
UniformInt::sample_single_inclusiveandRng::gen_rangewhenproviding a full integer range (eg
0..=MAX) (#1087)v0.8.1Compare Source
Other
v0.8.0Compare Source
Platform support
getrandomupdated to v0.2 (#1041)wasm-bindgenandstdwebfeature flags. For details of WASM support,see the getrandom documentation. (#948)
ReadRng::next_u32andnext_u64now use little-Endian conversion insteadof native-Endian, affecting results on Big-Endian platforms (#1061)
nightlyfeature no longer implies thesimd_supportfeature (#1048)simd_supportfeature to work on current nightlies (#1056)Rngs
ThreadRngis no longerCopyto enable safe usage within thread-local destructors (#1035)gen_range(a, b)was replaced withgen_range(a..b).gen_range(a..=b)isalso supported. Note that
aandbcan no longer be references or SIMD types. (#744, #1003)AsByteSliceMutwithFilland add support for[bool], [char], [f32], [f64](#940)rand::rngs::adaptertostd(#1027; see also #928)StdRng: add newstd_rngfeature flag (enabled by default, but might needto be used if disabling default crate features) (#948)
StdRng: Switch from ChaCha20 to ChaCha12 for better performance (#1028)SmallRng: Replace PCG algorithm with xoshiro{128,256}++ (#1038)Sequences
IteratorRandom::choose_stableas an alternative tochoosewhich doesnot depend on size hints (#1057)
IteratorRandom::choose(#1059)IntoIteratorforIndexVec, replacing theinto_itermethod (#1007)seqmodule (#933)Misc
PartialEqandEqforStdRng,SmallRngandStepRng(#979)serde1feature and added Serialize/Deserialize toUniformIntandWeightedIndex(#974)Distributions
Alphanumericsamples bytes instead of chars (#935)Uniformnow supportschar, enablingrng.gen_range('A'..='Z')(#1068)UniformSampler::sample_single_inclusive(#1003)Weighted sampling
rand::distributions::alias_method::WeightedIndexwas moved torand_distr::WeightedAliasIndex.The simpler alternative
rand::distribution::WeightedIndexremains. (#945)WeightedIndex::update_weights(#956)WeightedIndex: return error on NaN instead of panic (#1005)Documentation
random(#994)SmallRngmay not be the best choice for performance and in someother cases (#1038)
doc(cfg)to annotate feature-gated items (#1019)Configuration
📅 Schedule: Branch creation - Tuesday through Thursday ( * * * * 2-4 ) (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.
This PR was generated by Mend Renovate. View the repository job log.