Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release: 0.4.1 #211

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## [0.4.1] - 2017-12-17
### Added
- `no_std` support

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few other changes:

  • Added HC-128 RNG. Maybe with the description that it is similar to ISAAC, but proven to be cryptographically secure and often faster.
  • Technically Isaac64Rng::next_u32 is a breaking change, because it no longer throws away half the results.
  • {IsaacRng, Isaac64Rng}::new_unseeded is no longer available. Use {IsaacRng, Isaac64Rng}::new_from_u64(0) as replacement.
  • RNG's no longer implement Copy.
  • RNG's have a custom Debug implementation that does not expose the internal state.

Does it make sense to say something about impls? Or not advertise it too widely, because it may move to rand_core?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think any of that's merged yet.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought it was your goal to include them in this release after #205 (comment). Because they contain (small) breaking changes, they can't be part of 0.4.* if we follow semver.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the comments. Didn't think about lack of Copy being a breaking change, but you're right, it is (maybe we should add a deprecated impl?). new_unseeded we can potentially add back as a deprecated wrapper fn. So perhaps those changes can't land in 0.4 after all, or at least not all of them :/

BTW it should have been clear from this PR what was/wasn't in the release.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I finally get the scheme you have in mind 😄

## [0.4.0-pre.0] - 2017-12-11
### Added
- `JitterRng` added as a high-quality alternative entropy source using the
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "rand"
version = "0.4.0-pre.0"
version = "0.4.1"
authors = ["The Rust Project Developers"]
license = "MIT/Apache-2.0"
readme = "README.md"
Expand Down
18 changes: 11 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Add this to your `Cargo.toml`:

```toml
[dependencies]
rand = "0.3"
rand = "0.4"
```

and this to your crate root:
Expand All @@ -23,12 +23,16 @@ and this to your crate root:
extern crate rand;
```

### Unstable channel
### Versions

The 'master' branch tracks development code while the '0.3' branch tracks the
latest stable release. New features are currently being released in an "unstable
channel"; if you wish to opt-in to the latest releases (expect more breaking
changes in this channel) specify `rand = "0.4.0-pre.0"`.
The `rand` crate has been at version `0.3` since March 2015. If you wish to
avoid all breaking changes you may wish to stick with this version.

Version `0.4`was released in December 2017. It contains almost no breaking
changes since the `0.3` series, but nevertheless (will) contain a significant
amount of new code, including a new "external" entropy source (`JitterRng`),
`no_std` support, and significant performance improvements for the ISAAC random
number generators.

## Examples

Expand Down Expand Up @@ -105,7 +109,7 @@ You can derive the `Rand` trait for your custom type via the `#[derive(Rand)]`
directive. To use this first add this to your Cargo.toml:

```toml
rand = "0.3"
rand = "0.4"
rand_derive = "0.3"
```

Expand Down
2 changes: 1 addition & 1 deletion rand-derive/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@ quote = "0.3"
syn = "0.11"

[dev-dependencies]
rand = { path = "..", version = "0.4.0-pre.0" }
rand = { path = "..", version = "0.4" }