@@ -9,80 +9,81 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
10
10
### Crate features and organisation
11
11
- Minimum Rust version update: 1.22.0. (#239 )
12
- - Created a seperate ` rand-core ` crate. (#288 )
13
- - deprecated ` rand_derive ` . (#256 )
14
- - Added ` log ` feature. Logging is now available in ` JitterRng ` , ` OsRng ` , ` EntropyRng ` and ` ReseedingRng ` . (#246 )
15
- - Added ` serde-1 ` feature for some PRNGs. (#189 )
12
+ - Create a seperate ` rand-core ` crate. (#288 )
13
+ - Deprecate ` rand_derive ` . (#256 )
14
+ - Add ` log ` feature. Logging is now available in ` JitterRng ` , ` OsRng ` , ` EntropyRng ` and ` ReseedingRng ` . (#246 )
15
+ - Add ` serde-1 ` feature for some PRNGs. (#189 )
16
16
17
17
### ` Rng ` trait
18
18
- Split ` Rng ` in ` RngCore ` and ` Rng ` extension trait.
19
19
` next_u32 ` , ` next_u64 ` and ` fill_bytes ` are now part of ` RngCore ` . (#265 )
20
- - Added ` Rng::sample ` . (#256 )
21
- - Deprecated ` Rng::gen_weighted_bool ` . (#308 )
22
- - Added ` Rng::gen_bool ` . (#308 )
23
- - Removed ` Rng::next_f32 ` and ` Rng::next_f64 ` . (#273 )
24
- - Added optimized ` Rng::fill ` and ` Rng::try_fill ` methods. (#247 )
25
- - Deprecated ` Rng::gen_iter ` . (#286 )
26
- - Deprecated ` Rng::gen_ascii_chars ` . (#279 )
20
+ - Add ` Rng::sample ` . (#256 )
21
+ - Deprecate ` Rng::gen_weighted_bool ` . (#308 )
22
+ - Add ` Rng::gen_bool ` . (#308 )
23
+ - Remove ` Rng::next_f32 ` and ` Rng::next_f64 ` . (#273 )
24
+ - Add optimized ` Rng::fill ` and ` Rng::try_fill ` methods. (#247 )
25
+ - Deprecate ` Rng::gen_iter ` . (#286 )
26
+ - Deprecate ` Rng::gen_ascii_chars ` . (#279 )
27
27
28
28
### ` rand-core ` crate
29
29
(changes included here because they greatly influence the Rand crate)
30
30
- ` RngCore ` and ` SeedableRng ` are now part of ` rand-core ` . (#288 )
31
- - Added modules to help implementing RNGs ` impl ` and ` le ` . (#209 , #228 )
32
- - added ` Error ` and ` ErrorKind ` . (#225 )
33
- - Added ` CryptoRng ` marker trait. (#273 )
34
- - Added ` BlockRngCore ` trait. (#281 )
35
- - Added ` BlockRng ` wrapper to help implemtations . (#281 )
36
- - Revised the ` SeedableRng ` trait. (#233 )
37
- - Removed default implementations for ` RngCore::next_u64 ` and ` RngCore::fill_bytes ` . (#288 )
38
- - Added ` RngCore::try_fill_bytes ` . (#225 )
31
+ - Add modules to help implementing RNGs ` impl ` and ` le ` . (#209 , #228 )
32
+ - Add ` Error ` and ` ErrorKind ` . (#225 )
33
+ - Add ` CryptoRng ` marker trait. (#273 )
34
+ - Add ` BlockRngCore ` trait. (#281 )
35
+ - Add ` BlockRng ` wrapper to help implementations . (#281 )
36
+ - Revise the ` SeedableRng ` trait. (#233 )
37
+ - Remove default implementations for ` RngCore::next_u64 ` and ` RngCore::fill_bytes ` . (#288 )
38
+ - Add ` RngCore::try_fill_bytes ` . (#225 )
39
39
40
40
### Other traits and types
41
- - Added ` NewRng ` trait. (#233 )
42
- - Added ` SmallRng ` wrapper. (#296 )
43
- - Rewritten ` ReseedingRng ` to only work with ` BlockRngCore ` (much improved performance). (#281 )
44
- - Deprecated ` weak_rng ` . Use ` SmallRng ` instead. (#296 )
45
- - Deprecated ` random ` . (#296 )
46
- - Deprecated ` AsciiGenerator ` . (#279 )
41
+ - Add ` NewRng ` trait. (#233 )
42
+ - Add ` SmallRng ` wrapper. (#296 )
43
+ - Rewrite ` ReseedingRng ` to only work with ` BlockRngCore ` (substantial performance improvement ). (#281 )
44
+ - Deprecate ` weak_rng ` . Use ` SmallRng ` instead. (#296 )
45
+ - Deprecate ` random ` . (#296 )
46
+ - Deprecate ` AsciiGenerator ` . (#279 )
47
47
48
48
### Random number generators
49
- - Switched ` StdRng ` and ` thread_rng ` to HC-128. (#277 )
50
- - Changed ` thread_rng ` reseeding threshold to 32 MiB. (#277 )
49
+ - Switch ` StdRng ` and ` thread_rng ` to HC-128. (#277 )
50
+ - Change ` thread_rng ` reseeding threshold to 32 MiB. (#277 )
51
51
- PRNGs no longer implement ` Copy ` . (#209 )
52
52
- ` Debug ` implementations no longer show internals. (#209 )
53
- - Implemented serialisation for ` XorShiftRng ` , ` IsaacRng ` and ` Isaac64Rng ` under the ` serde-1 ` feature. (#189 )
54
- - Implemented ` BlockRngCore ` for ` ChaCha ` and ` Hc128 ` . (#281 )
53
+ - Implement serialisation for ` XorShiftRng ` , ` IsaacRng ` and ` Isaac64Rng ` under the ` serde-1 ` feature. (#189 )
54
+ - Implement ` BlockRngCore ` for ` ChaChaCore ` and ` Hc128Core ` . (#281 )
55
55
- All PRNGs are now portable across big- and little-endian architectures. (#209 )
56
56
- ` Isaac64Rng::next_u32 ` no longer throws away half the results. (#209 )
57
- - Added ` IsaacRng::new_from_u64 ` and ` Isaac64Rng::new_from_u64 ` . (#209 )
58
- - Added the HC-128 CSPRNG ` Hc128Rng ` . (#210 )
59
- - Added ` ChaChaRng::set_rounds ` method. (#243 )
60
- - Changes to ` JitterRng ` to get it's size down from 2112 to 24 bytes. (#251 )
57
+ - Add ` IsaacRng::new_from_u64 ` and ` Isaac64Rng::new_from_u64 ` . (#209 )
58
+ - Remove ` IsaacWordRng ` wrapper. (#277 )
59
+ - Add the HC-128 CSPRNG ` Hc128Rng ` . (#210 )
60
+ - Add ` ChaChaRng::set_rounds ` method. (#243 )
61
+ - Changes to ` JitterRng ` to get its size down from 2112 to 24 bytes. (#251 )
61
62
- Various performance improvements to all PRNGs.
62
63
63
64
### Platform support and ` OsRng `
64
- - Added support for CloudABI. (#224 )
65
- - Removed support for NaCl. (#225 )
66
- - Replaced stubs with proper WASM support in ` OsRng ` . (#272 )
67
- - Keep open only a single file descriptor for ` OsRng ` , on systems that do not have a syscall interface . (#239 )
65
+ - Add support for CloudABI. (#224 )
66
+ - Remove support for NaCl. (#225 )
67
+ - Replace stubs with proper WASM support in ` OsRng ` . (#272 )
68
+ - On systems that do not have a syscall interface, only keep a single file descriptor open for ` OsRng ` . (#239 )
68
69
- Better error handling and reporting in ` OsRng ` (using new error type). (#225 )
69
70
- ` OsRng ` now uses non-blocking when available. (#225 )
70
- - Added ` EntropyRng ` , which provides ` OsRng ` , but has ` JitterRng ` as a fallback. (#235 )
71
+ - Add ` EntropyRng ` , which provides ` OsRng ` , but has ` JitterRng ` as a fallback. (#235 )
71
72
72
73
### Distributions
73
74
- New ` Distribution ` trait. (#256 )
74
- - Deprecated ` Rand ` , ` Sample ` and ` IndependentSample ` traits. (#256 )
75
- - Added a ` Uniform ` distribution (replaces most ` Rand ` implementations). (#256 )
76
- - Added ` Binomial ` and ` Poisson ` distributions. (#96 )
77
- - Added ` Alphanumeric ` distribution. (#279 )
78
- - Removed ` Open01 ` and ` Closed01 ` distributions, use ` Uniform ` instead (open distribution). (#274 )
79
- - Reworked ` Range ` type, making it possible to implement it for user types. (#274 )
80
- - Added ` Range::new_inclusive ` for inclusive ranges. (#274 )
81
- - Added ` Range::sample_single ` to allow for optimized implementations. (#274 )
82
- - Uses widening multiply method for much faster integer range reduction. (#274 )
75
+ - Deprecate ` Rand ` , ` Sample ` and ` IndependentSample ` traits. (#256 )
76
+ - Add a ` Uniform ` distribution (replaces most ` Rand ` implementations). (#256 )
77
+ - Add ` Binomial ` and ` Poisson ` distributions. (#96 )
78
+ - Add ` Alphanumeric ` distribution. (#279 )
79
+ - Remove ` Open01 ` and ` Closed01 ` distributions, use ` Uniform ` instead (open distribution). (#274 )
80
+ - Rework ` Range ` type, making it possible to implement it for user types. (#274 )
81
+ - Add ` Range::new_inclusive ` for inclusive ranges. (#274 )
82
+ - Add ` Range::sample_single ` to allow for optimized implementations. (#274 )
83
+ - Use widening multiply method for much faster integer range reduction. (#274 )
83
84
- ` Uniform ` distributions for ` bool ` uses ` Range ` . (#274 )
84
85
- ` Uniform ` distributions for ` bool ` uses sign test. (#274 )
85
- - Added ` HighPrecision01 ` distribution. (#320 )
86
+ - Add ` HighPrecision01 ` distribution. (#320 )
86
87
87
88
88
89
## [ 0.4.2] - 2018-01-06
0 commit comments