@@ -51,8 +51,8 @@ API-breaking changes and `MAJOR.MINOR.PATCH` versions:
5151 - although these are public versions, they are not used by default unless
5252 opting into using a pre-release on the specific ` MAJOR.MINOR.PATCH `
5353 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 ` )
5656 - all pre-release versions are unstable and may make any change
5757 - we make no commitment to support users of pre-releases
5858
@@ -68,8 +68,12 @@ functionality is supposed to be non-deterministic (i.e. depend on something
6868external). Some functionality may be deterministic but not value-stable.
6969
7070A 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.
7377
7478Before 1.0, we allow any new * minor* version to break value-stability, though
7579we 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:
132136- scope of the project
133137- reception and third-party review of the algorithm
134138
135- In general, we expect:
139+ In general, we expect the following, though we may make exceptions :
136140
137141- the author of the algorithm to publish an article of some type (e.g.
138142 a scientific article or web page) introducing the new algorithm and
139143 discussing its utility, strengths and weaknesses
140144- 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