-
Notifications
You must be signed in to change notification settings - Fork 13.7k
std: Stabilize the hash
module
#22480
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
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]