@@ -51,8 +51,8 @@ API-breaking changes and `MAJOR.MINOR.PATCH` versions:
51
51
- although these are public versions, they are not used by default unless
52
52
opting into using a pre-release on the specific ` MAJOR.MINOR.PATCH `
53
53
version
54
- - pre-releases are considered semantically less than their stem (e.g.
55
- Cargo may automatically upgrade from ` 0.5.0-pre.0 ` to ` 0.5.0 ` )
54
+ - pre-releases are considered semantically less than their final release
55
+ (e.g. Cargo may automatically upgrade from ` 0.5.0-pre.0 ` to ` 0.5.0 ` )
56
56
- all pre-release versions are unstable and may make any change
57
57
- we make no commitment to support users of pre-releases
58
58
@@ -68,8 +68,12 @@ functionality is supposed to be non-deterministic (i.e. depend on something
68
68
external). Some functionality may be deterministic but not value-stable.
69
69
70
70
A trait should define which of its functions are expected to be value-stable.
71
- A type (e.g. a PRNG) is value-stable if all implementations of trait functions
72
- for that type are value-stable where expected to be.
71
+ An implementation of a trait must meet those stability requirements, unless the
72
+ object for which the trait is implemented is explicitly not value-stable.
73
+ As an example, ` SeedableRng::from_seed ` is required to be value-stable, but
74
+ ` SeedableRng::from_rng ` is not. RNGs implementing the trait are value-stable
75
+ when they guarantee ` SeedableRng::from_seed ` is value-stable, while
76
+ ` SeedableRng::from_rng ` may receive optimisations.
73
77
74
78
Before 1.0, we allow any new * minor* version to break value-stability, though
75
79
we do expect such changes to be mentioned in the changelog. Post 1.0 we have
@@ -132,12 +136,11 @@ consider such requests in regards to several things:
132
136
- scope of the project
133
137
- reception and third-party review of the algorithm
134
138
135
- In general, we expect:
139
+ In general, we expect the following, though we may make exceptions :
136
140
137
141
- the author of the algorithm to publish an article of some type (e.g.
138
142
a scientific article or web page) introducing the new algorithm and
139
143
discussing its utility, strengths and weaknesses
140
144
- review of statistical quality and any special features by third parties
141
- - good performance in automated test suites like PractRand, TestU01 and
142
- BigCrush, (unless for some reason this is not expected, e.g. a mock
143
- generator)
145
+ - good performance in automated test suites like PractRand and TestU01
146
+ (unless for some reason this is not expected, e.g. a mock generator)
0 commit comments