Skip to content

Commit 17aeefb

Browse files
docs(fx): refactor hasher comments.
1 parent db34469 commit 17aeefb

1 file changed

Lines changed: 4 additions & 5 deletions

File tree

  • compiler/src/modules

compiler/src/modules/fx.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use core::hash::{BuildHasher, Hasher};
22
use core::sync::atomic::{AtomicUsize, Ordering};
33

4-
/* FxHash multiplier (rustc-hash); keeps mixing fast and predictable. */
4+
/* FxHash multiplier from rustc-hash. */
55
const K: u64 = 0x517cc1b727220a95;
66

77
static SEED_COUNTER: AtomicUsize = AtomicUsize::new(1);
@@ -30,16 +30,15 @@ impl Hasher for FxHasher {
3030
pub struct FxBuildHasher(u64);
3131

3232
impl FxBuildHasher {
33-
/* Per-map seed via atomic counter, then MurmurHash3 finalizer to
34-
decorrelate sequential counter values. */
33+
/* Atomic counter seed, avalanche-mixed to decorrelate sequential values. */
3534
#[inline]
3635
pub fn new() -> Self {
3736
let raw = SEED_COUNTER.fetch_add(1, Ordering::Relaxed) as u64;
3837
Self(murmur3_fmix64(raw))
3938
}
4039
}
4140

42-
/* Avalanche mixer: a one-bit difference spreads across all 64 bits. */
41+
/* MurmurHash3 finalizer: spreads a 1-bit difference across all 64 bits. */
4342
#[inline]
4443
fn murmur3_fmix64(mut h: u64) -> u64 {
4544
h ^= h >> 33;
@@ -61,4 +60,4 @@ impl BuildHasher for FxBuildHasher {
6160
}
6261

6362
pub type FxHashMap<K, V> = hashbrown::HashMap<K, V, FxBuildHasher>;
64-
pub type FxHashSet<T> = hashbrown::HashSet<T, FxBuildHasher>;
63+
pub type FxHashSet<T> = hashbrown::HashSet<T, FxBuildHasher>;

0 commit comments

Comments
 (0)