-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
std: Stabilize the hash
module
#22480
Conversation
(rust_highfive has picked a reviewer for you, use r? to override) |
r? @aturon |
The diff stat is a bit alarming, but it's 99% due to |
fea7ad7
to
3143c4b
Compare
@@ -76,22 +72,123 @@ mod sip; | |||
/// to compute the hash. Specific implementations of this trait may specialize | |||
/// for particular instances of `H` in order to be able to optimize the hashing | |||
/// behavior. | |||
#[cfg(not(stage0))] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The doc comment above here is slightly stale -- some of it should move to the methods, I think.
So... I don't know how to meaningfully review the 4+kloc of stage0 fallout here, but the changes to the core module LGTM. Let me know if there's any particular area of fallout that you think wants more scrutiny. |
This commit is an implementation of [RFC 823][rfc] which is another pass over the `std::hash` module for stabilization. The contents of the module were not entirely marked stable, but some portions which remained quite similar to the previous incarnation are now marked `#[stable]`. Specifically: [rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0823-hash-simplification.md * `std::hash` is now stable (the name) * `Hash` is now stable * `Hash::hash` is now stable * `Hasher` is now stable * `SipHasher` is now stable * `SipHasher::new` and `new_with_keys` are now stable * `Hasher for SipHasher` is now stable * Many `Hash` implementations are now stable All other portions of the `hash` module remain `#[unstable]` as they are less commonly used and were recently redesigned. This commit is a breaking change due to the modifications to the `std::hash` API and more details can be found on the [RFC][rfc]. Closes rust-lang#22467 [breaking-change]
@bors: r+ fbad3bf |
@bors: p=1 (important stabilization to land pre-alpha2 if possible) |
⌛ Testing commit fbad3bf with merge c77b248... |
💔 Test failed - auto-linux-32-opt |
⌛ Testing commit f83e23a with merge 68ff044... |
💔 Test failed - auto-win-64-opt |
💔 Test failed - auto-win-32-nopt-t |
💔 Test failed - auto-win-32-opt |
💔 Test failed - auto-win-64-nopt-t |
💔 Test failed - auto-linux-64-nopt-t |
@bors: retry |
This commit is an implementation of [RFC 823][rfc] which is another pass over the `std::hash` module for stabilization. The contents of the module were not entirely marked stable, but some portions which remained quite similar to the previous incarnation are now marked `#[stable]`. Specifically: [rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0823-hash-simplification.md * `std::hash` is now stable (the name) * `Hash` is now stable * `Hash::hash` is now stable * `Hasher` is now stable * `SipHasher` is now stable * `SipHasher::new` and `new_with_keys` are now stable * `Hasher for SipHasher` is now stable * Many `Hash` implementations are now stable All other portions of the `hash` module remain `#[unstable]` as they are less commonly used and were recently redesigned. This commit is a breaking change due to the modifications to the `std::hash` API and more details can be found on the [RFC][rfc]. Closes rust-lang#22467 [breaking-change]
⌛ Testing commit f83e23a with merge fe7b8b2... |
💔 Test failed - auto-linux-32-opt |
…excrichton This commit has already been merged in rust-lang#21774, but i think it has been accidently overriden by rust-lang#22584 and rust-lang#22480. r? @alexcrichton
This commit is an implementation of RFC 823 which is another pass over
the
std::hash
module for stabilization. The contents of the module were notentirely marked stable, but some portions which remained quite similar to the
previous incarnation are now marked
#[stable]
. Specifically:std::hash
is now stable (the name)Hash
is now stableHash::hash
is now stableHasher
is now stableSipHasher
is now stableSipHasher::new
andnew_with_keys
are now stableHasher for SipHasher
is now stableHash
implementations are now stableAll other portions of the
hash
module remain#[unstable]
as they are lesscommonly used and were recently redesigned.
This commit is a breaking change due to the modifications to the
std::hash
APIand more details can be found on the RFC.
Closes #22467
[breaking-change]