about summary refs log tree commit diff
path: root/src/libcore/hash
AgeCommit message (Collapse)AuthorLines
2019-02-10libs: doc commentsAlexander Regueiro-3/+3
2019-01-28libcore: remove unneeded allow(deprecated)Ralf Jung-1/+1
2018-12-25Remove licensesMark Rousskov-20/+0
2018-12-07Various minor/cosmetic improvements to codeAlexander Regueiro-1/+1
2018-09-29Use impl_header_lifetime_elision in libcoreScott McMurray-3/+3
2018-07-15impl PartialEq+Eq for BuildHasherDefaultMarco Neumann-0/+10
2018-06-14impl Hash for !Clar Charr-0/+7
2018-03-26Fix a few more unstables that I missedMark Mansi-2/+2
2018-03-17Mark deprecated unstable SipHasher13 as a doc-hidden impl detail of HashMap.Simon Sapin-6/+8
It stays in libcore rather than being private in HashMap’s module because it shares code with the deprecated *stable* `SipHasher` type.
2018-03-17Make the deprecated unstable SipHasher24 type private.Simon Sapin-40/+7
It is still used by the deprecated *stable* `SipHasher` type.
2017-11-10Fix broken link markup in Hasher::finish docsLukas H-1/+1
There were apostrophes when there needed to be backticks.
2017-10-25Implement Hash for raw pointers to unsized typesMatt Brubeck-4/+24
2017-10-20Fix most rendering warnings from switching to CommonMarksteveklabnik-3/+3
2017-10-16rustc_data_structures: Add implementation of 128 bit SipHash.Michael Woerister-0/+1
2017-09-12impl Hasher for {&mut Hasher, Box<Hasher>}kennytm-0/+46
2017-08-16Document that std::hash::Hasher::finish() does not reset the hasher.Martin Hoffmann-1/+8
2017-07-20std: Cut down #[inline] annotations where not necessaryAlex Crichton-1/+1
This PR cuts down on a large number of `#[inline(always)]` and `#[inline]` annotations in libcore for various core functions. The `#[inline(always)]` annotation is almost never needed and is detrimental to debug build times as it forces LLVM to perform inlining when it otherwise wouldn't need to in debug builds. Additionally `#[inline]` is an unnecessary annoation on almost all generic functions because the function will already be monomorphized into other codegen units and otherwise rarely needs the extra "help" from us to tell LLVM to inline something. Overall this PR cut the compile time of a [microbenchmark][1] by 30% from 1s to 0.7s. [1]: https://gist.github.com/alexcrichton/a7d70319a45aa60cf36a6a7bf540dd3a
2017-07-02Implement Eq/Hash/Debug etc. for unsized tuples.Masaki Hara-1/+6
2017-06-16Introduce tidy lint to check for inconsistent tracking issuesest31-1/+1
This commit * Refactors the collect_lib_features function to work in a non-checking mode (no bad pointer needed, and list of lang features). * Introduces checking whether unstable/stable tags for a given feature have inconsistent tracking issues. * Fixes such inconsistencies throughout the codebase.
2017-05-02Removal pass for anonymous parametersest31-2/+2
Removes occurences of anonymous parameters from the rustc codebase, as they are to be deprecated. See issue #41686 and RFC 1685.
2017-04-10Fixed indent, grammar, and link in std::hash docslukaramu-4/+4
2017-04-07improved std::hash::Hasher docslukaramu-2/+57
Part of #29357. * rephrased summary sentences to be less redundant * expanded top-level docs, adding a usage example and links to relevant methods (`finish`, `write` etc) as well as `Hash` * added examples to the `finish` and `write` methods
2017-04-06improved std::hash::Hash docslukaramu-22/+61
Part of #29357. * merged "Derivable" and "How can I implement `Hash`?" sections into one "Implementing `Hash`" section to aid coherency * added an example for `#[derive(Hash)]` * moved part about relation between `Hash` and `Eq` into a new "`Hash` and `Eq`" section; changed wording to be more consistent with `HashMap` and `HashSet`'s * explicitly mentioned `#[derive(PartialEq, Eq, Hash)]` in the new section * changed method summaries for consistency, adding links and examples
2017-04-06improved std::hash::BuildHasher docslukaramu-5/+33
Part of #29357. * split summary and explanation more clearly, while expanding the explanation to make the reason for `BuildHasher` existing more clear * added an example illustrating that `Hasher`s created by one `BuildHasher` should be identical * added links * repeated the fact that hashers produced should be identical in `build_hasher`s method docs
2017-04-06rephrased std::hash::BuildHasherDefault docslukaramu-4/+13
Part of #29357. * split summary and explanation more clearly * added link to nomicon for "zero-sized" * "does not need construction" -> say how it can be created, and that it doesn't need to be done with `HashMap` or `HashSet`
2017-03-17Rollup merge of #40505 - frewsxcv:hash-docs, r=alexcrichtonCorey Farwell-13/+31
A few improvements to the `core::hash` top-level docs. Primarily opened to address the concerns brought up in https://github.com/rust-lang/rust/issues/40498. * run rustfmt on code blocks * use `DefaultHasher` instead of deprecated `SipHasher` * rename `hash` to `calculate_hash` to prevent confusion with the `hash` method
2017-03-14A few improvements to the `core::hash` top-level docs.Corey Farwell-13/+31
Primarily opened to address the concerns brought up in https://github.com/rust-lang/rust/issues/40498. * run rustfmt on code blocks * use `DefaultHasher` instead of deprecated `SipHasher` * rename `hash` to `calculate_hash` to prevent confusion with the `hash` method
2017-03-13Remove function invokation parens from documentation links.Corey Farwell-2/+2
This was never established as a convention we should follow in the 'More API Documentation Conventions' RFC: https://github.com/rust-lang/rfcs/blob/master/text/1574-more-api-documentation-conventions.md
2017-02-03Bump version, upgrade bootstrapAlex Crichton-5/+0
This commit updates the version number to 1.17.0 as we're not on that version of the nightly compiler, and at the same time this updates src/stage0.txt to bootstrap from freshly minted beta compiler and beta Cargo.
2017-01-27Fix a few links in the docsOliver Middleton-0/+1
2016-12-30Such large. Very 128. Much bits.Simonas Kazlauskas-0/+19
This commit introduces 128-bit integers. Stage 2 builds and produces a working compiler which understands and supports 128-bit integers throughout. The general strategy used is to have rustc_i128 module which provides aliases for iu128, equal to iu64 in stage9 and iu128 later. Since nowhere in rustc we rely on large numbers being supported, this strategy is good enough to get past the first bootstrap stages to end up with a fully working 128-bit capable compiler. In order for this strategy to work, number of locations had to be changed to use associated max_value/min_value instead of MAX/MIN constants as well as the min_value (or was it max_value?) had to be changed to use xor instead of shift so both 64-bit and 128-bit based consteval works (former not necessarily producing the right results in stage1). This commit includes manual merge conflict resolution changes from a rebase by @est31.
2016-12-16Rewrite, improve documentation for `core::hash::BuildHasherDefault`.Corey Farwell-3/+37
Fixes https://github.com/rust-lang/rust/issues/31242.
2016-11-04reference full path `DefaultHasher`Liigo Zhuang-9/+18
2016-10-25Small improvement to SipHasherarthurprs-50/+97
2016-10-14Rollup merge of #36961 - GuillaumeGomez:hash_doc, r=frewsxcvJonathan Turner-15/+22
Add missing urls for hash modules r? @steveklabnik
2016-10-08Add missing urls for hash modulesGuillaume Gomez-15/+22
2016-10-04update sip.rs for new intrinsics and defaultsEric Roshan-Eisner-14/+9
2016-10-03std: Stabilize and deprecate APIs for 1.13Alex Crichton-1/+13
This commit is intended to be backported to the 1.13 branch, and works with the following APIs: Stabilized * `i32::checked_abs` * `i32::wrapping_abs` * `i32::overflowing_abs` * `RefCell::try_borrow` * `RefCell::try_borrow_mut` * `DefaultHasher` * `DefaultHasher::new` * `DefaultHasher::default` Deprecated * `BinaryHeap::push_pop` * `BinaryHeap::replace` * `SipHash13` * `SipHash24` * `SipHasher` - use `DefaultHasher` instead in the `std::collections::hash_map` module Closes #28147 Closes #34767 Closes #35057 Closes #35070
2016-09-11Documentation of what does for each typeathulappadan-0/+1
2016-08-24Use `#[prelude_import]` in `libcore`.Jeffrey Seyfried-6/+0
2016-07-22Add BuildHasher exampleggomez-0/+10
2016-07-11std: Correct tracking issue for SipHash{13,24}Alex Crichton-8/+8
The referenced tracking issue was closed and was actually about changing the algorithm. cc #34767
2016-06-29std: use siphash-1-3 for HashMapSean McArthur-52/+200
2016-05-23"the trait `Hash`" => "the `Hash` trait"Carol (Nichols || Goulding)-2/+2
2016-05-23Add more information about implementing `Hash`Carol (Nichols || Goulding)-0/+24
A bit of duplication from the module documentation, but simplified to be closer to being trivially copy-paste-able.
2016-05-23Add explanations about what derived trait implementations doCarol (Nichols || Goulding)-1/+3
2016-03-28Prefer HTTPS when linking to 131002.net.Corey Farwell-1/+1
2016-03-20libcore: add Debug implementations to most missing typesSean McArthur-0/+9
2016-03-12std: Clean out deprecated APIsAlex Crichton-24/+0
Removes all unstable and deprecated APIs prior to the 1.8 release. All APIs that are deprecated in the 1.8 release are sticking around for the rest of this cycle. Some notable changes are: * The `dynamic_lib` module was moved into `rustc_back` as the compiler still relies on a few bits and pieces. * The `DebugTuple` formatter now special-cases an empty struct name with only one field to append a trailing comma.
2016-03-08Link to actual CSPRNG in `hash::SipHasher` documentationDirk Gadsden-4/+4