@@ -4,16 +4,100 @@ All notable changes to this project will be documented in this file.
4
4
The format is based on [ Keep a Changelog] ( http://keepachangelog.com/en/1.0.0/ )
5
5
and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
6
6
7
- ## [ 0.4.2] - 2018-01-05
7
+
8
+ ## [ 0.5.0] - Unreleased
9
+
10
+ ### Crate features and organisation
11
+ - Minimum Rust version update: 1.22.0. (#239 )
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
+
17
+ ### ` Rng ` trait
18
+ - Split ` Rng ` in ` RngCore ` and ` Rng ` extension trait.
19
+ ` next_u32 ` , ` next_u64 ` and ` fill_bytes ` are now part of ` RngCore ` . (#265 )
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
+
28
+ ### ` rand-core ` crate
29
+ (changes included here because they greatly influence the Rand crate)
30
+ - ` RngCore ` and ` SeedableRng ` are now part of ` rand-core ` . (#288 )
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
+
40
+ ### Other traits and types
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
+
48
+ ### Random number generators
49
+ - Switch ` StdRng ` and ` thread_rng ` to HC-128. (#277 )
50
+ - Change ` thread_rng ` reseeding threshold to 32 MiB. (#277 )
51
+ - PRNGs no longer implement ` Copy ` . (#209 )
52
+ - ` Debug ` implementations no longer show internals. (#209 )
53
+ - Implement serialisation for ` XorShiftRng ` , ` IsaacRng ` and ` Isaac64Rng ` under the ` serde-1 ` feature. (#189 )
54
+ - Implement ` BlockRngCore ` for ` ChaChaCore ` and ` Hc128Core ` . (#281 )
55
+ - All PRNGs are now portable across big- and little-endian architectures. (#209 )
56
+ - ` Isaac64Rng::next_u32 ` no longer throws away half the results. (#209 )
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 )
62
+ - Various performance improvements to all PRNGs.
63
+
64
+ ### Platform support and ` OsRng `
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 )
69
+ - Better error handling and reporting in ` OsRng ` (using new error type). (#225 )
70
+ - ` OsRng ` now uses non-blocking when available. (#225 )
71
+ - Add ` EntropyRng ` , which provides ` OsRng ` , but has ` JitterRng ` as a fallback. (#235 )
72
+
73
+ ### Distributions
74
+ - New ` Distribution ` trait. (#256 )
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 )
84
+ - ` Uniform ` distributions for ` bool ` uses ` Range ` . (#274 )
85
+ - ` Uniform ` distributions for ` bool ` uses sign test. (#274 )
86
+ - Add ` HighPrecision01 ` distribution. (#320 )
87
+
88
+
89
+ ## [ 0.4.2] - 2018-01-06
8
90
### Changed
9
- - Use winapi on Windows
91
+ - Use ` winapi ` on Windows
10
92
- Update for Fuchsia OS
11
93
- Remove dev-dependency on ` log `
12
94
95
+
13
96
## [ 0.4.1] - 2017-12-17
14
97
### Added
15
98
- ` no_std ` support
16
99
100
+
17
101
## [ 0.4.0-pre.0] - 2017-12-11
18
102
### Added
19
103
- ` JitterRng ` added as a high-quality alternative entropy source using the
@@ -29,6 +113,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
29
113
### Deprecated
30
114
- ` sample ` function deprecated (replaced by ` sample_iter ` )
31
115
116
+
117
+ ## [ 0.3.20] - 2018-01-06
118
+ ### Changed
119
+ - Remove dev-dependency on ` log `
120
+ - Update ` fuchsia-zircon ` dependency to 0.3.2
121
+
122
+
123
+ ## [ 0.3.19] - 2017-12-27
124
+ ### Changed
125
+ - Require ` log <= 0.3.8 ` for dev builds
126
+ - Update ` fuchsia-zircon ` dependency to 0.3
127
+ - Fix broken links in docs (to unblock compiler docs testing CI)
128
+
129
+
32
130
## [ 0.3.18] - 2017-11-06
33
131
### Changed
34
132
- ` thread_rng ` is seeded from the system time if ` OsRng ` fails
@@ -223,7 +321,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
223
321
- ` Rng::gen_ascii_chars() ` which will return an infinite stream of random ascii characters
224
322
225
323
### Changed
226
- - Now only depends on libcore! 2adf5363f88ffe06f6d2ea5c338d1b186d47f4a1
324
+ - Now only depends on libcore!
227
325
- Remove ` Rng.choose() ` , rename ` Rng.choose_option() ` to ` .choose() `
228
326
- Rename OSRng to OsRng
229
327
- The WeightedChoice structure is no longer built with a ` Vec<Weighted<T>> ` ,
0 commit comments