@@ -9,35 +9,60 @@ A [separate changelog is kept for rand_core](rand_core/CHANGELOG.md).
99You may also find the [ Upgrade Guide] ( https://rust-random.github.io/book/update.html ) useful.
1010
1111## [ 0.8.0] - 2020-12-18
12- ### Additions
13- - impl PartialEq+Eq for StdRng, SmallRng, and StepRng (#975 )
14- - Added a ` serde1 ` feature and added Serialize/Deserialize to ` UniformInt ` and ` WeightedIndex ` (#974 )
15- - Document types supported by ` random ` (#994 )
16- - Implement weighted sampling without replacement (#976 , #1013 )
17- - Add ` IteratorRandom::choose_stable ` as an alternative to ` choose ` which does not depend on size hints (#1057 )
18-
19- ### Changes
20- - ` getrandom ` updated to v0.2 (#1041 )
21- - ` ThreadRng ` is no longer ` Copy ` to enable safe usage within thread-local destructors (see #968 )
22- - ` gen_range(a, b) ` was replaced with ` gen_range(a..b) ` , and ` gen_range(a..=b) `
23- is supported (#744 , #1003 ). Note that ` a ` and ` b ` can no longer be references or SIMD types.
24- - Replace ` AsByteSliceMut ` with ` Fill ` (#940 )
25- - Move alias method for ` WeightedIndex ` to ` rand_distr ` (#945 )
26- - ` Alphanumeric ` samples bytes instead of chars (#935 )
12+ ### Platform support
2713- The minimum supported Rust version is now 1.36 (#1011 )
28- - Restrict ` rand::rngs::adapter ` to ` std ` (#1027 )
29- - Better NaN handling for ` WeightedIndex ` (#1005 )
30- - Implement ` IntoIterator ` for ` IndexVec ` , replacing the ` into_iter ` method (#1007 )
31- - Reduce packaged crate size (#983 )
32- - Drop some unsafe code (#962 , #963 , #1011 )
33- - Improve treatment of rounding errors in ` WeightedIndex::update_weights ` (#956 )
34- - ` StdRng ` : Switch from ChaCha20 to ChaCha12 for better performance (#1028 )
35- - ` SmallRng ` : Replace PCG algorithm with xoshiro{128,256}++ (#1038 )
14+ - ` getrandom ` updated to v0.2 (#1041 )
15+ - Remove ` wasm-bindgen ` and ` stdweb ` feature flags. For details of WASM support,
16+ see the [ getrandom documentation] ( https://docs.rs/getrandom/latest ) . (#948 )
17+ - ` ReadRng::next_u32 ` and ` next_u64 ` now use little-Endian conversion instead
18+ of native-Endian, affecting results on Big-Endian platforms (#1061 )
3619- The ` nightly ` feature no longer implies the ` simd_support ` feature (#1048 )
3720- Fix ` simd_support ` feature to work on current nightlies (#1056 )
21+
22+ ### Rngs
23+ - ` ThreadRng ` is no longer ` Copy ` to enable safe usage within thread-local destructors (#1035 )
24+ - ` gen_range(a, b) ` was replaced with ` gen_range(a..b) ` . ` gen_range(a..=b) ` is
25+ also supported. Note that ` a ` and ` b ` can no longer be references or SIMD types. (#744 , #1003 )
26+ - Replace ` AsByteSliceMut ` with ` Fill ` and add support for ` [bool], [char], [f32], [f64] ` (#940 )
27+ - Restrict ` rand::rngs::adapter ` to ` std ` (#1027 ; see also #928 )
28+ - ` StdRng ` : add new ` std_rng ` feature flag (enabled by default, but might need
29+ to be used if disabling default crate features) (#948 )
30+ - ` StdRng ` : Switch from ChaCha20 to ChaCha12 for better performance (#1028 )
31+ - ` SmallRng ` : Replace PCG algorithm with xoshiro{128,256}++ (#1038 )
32+
33+ ### Sequences
34+ - Add ` IteratorRandom::choose_stable ` as an alternative to ` choose ` which does
35+ not depend on size hints (#1057 )
3836- Improve accuracy and performance of ` IteratorRandom::choose ` (#1059 )
39- - ` ReadRng::next_u32 ` and ` next_u64 ` now use little-Endian conversion instead
40- of native-Endian, affecting results on Big-Endian platforms (#1026 )
37+ - Implement ` IntoIterator ` for ` IndexVec ` , replacing the ` into_iter ` method (#1007 )
38+ - Add value stability tests for ` seq ` module (#933 )
39+
40+ ### Misc
41+ - Support ` PartialEq ` and ` Eq ` for ` StdRng ` , ` SmallRng ` and ` StepRng ` (#979 )
42+ - Added a ` serde1 ` feature and added Serialize/Deserialize to ` UniformInt ` and ` WeightedIndex ` (#974 )
43+ - Drop some unsafe code (#962 , #963 , #1011 )
44+ - Reduce packaged crate size (#983 )
45+ - Migrate to GitHub Actions from Travis+AppVeyor (#1073 )
46+
47+ ### Distributions
48+ - ` Alphanumeric ` samples bytes instead of chars (#935 )
49+ - ` Uniform ` now supports ` char ` , enabling ` rng.gen_range('A'..='Z') ` (#1068 )
50+ - Add ` UniformSampler::sample_single_inclusive ` (#1003 )
51+
52+ #### Weighted sampling
53+ - Implement weighted sampling without replacement (#976 , #1013 )
54+ - ` rand::distributions::alias_method::WeightedIndex ` was moved to ` rand_distr::WeightedAliasIndex ` .
55+ The simpler alternative ` rand::distribution::WeightedIndex ` remains. (#945 )
56+ - Improve treatment of rounding errors in ` WeightedIndex::update_weights ` (#956 )
57+ - ` WeightedIndex ` : return error on NaN instead of panic (#1005 )
58+
59+ ### Documentation
60+ - Document types supported by ` random ` (#994 )
61+ - Document notes on password generation (#995 )
62+ - Note that ` SmallRng ` may not be the best choice for performance and in some
63+ other cases (#1038 )
64+ - Use ` doc(cfg) ` to annotate feature-gated items (#1019 )
65+ - Adjust README (#1065 )
4166
4267## [ 0.7.3] - 2020-01-10
4368### Fixes
0 commit comments