about summary refs log tree commit diff
path: root/compiler/rustc_pattern_analysis/src/errors.rs
diff options
context:
space:
mode:
authorMichael Howell <michael@notriddle.com>2023-12-10 22:46:40 -0700
committerMichael Howell <michael@notriddle.com>2023-12-13 10:37:51 -0700
commit9dfcf131b3a8c36c5d9f8c46b3f127e5709b2b93 (patch)
treee4cb7c4ad4ec1fffac45a8f426f86618002baaad /compiler/rustc_pattern_analysis/src/errors.rs
parent9a9695a05268fd6548d416e511d5222b35b62db0 (diff)
downloadrust-9dfcf131b3a8c36c5d9f8c46b3f127e5709b2b93.tar.gz
rust-9dfcf131b3a8c36c5d9f8c46b3f127e5709b2b93.zip
rustdoc-search: better hashing, faster unification
The hash changes are based on some tests with `arti` and various
specific queries, aimed at reducing the false positive rate.

Sorting the query elements so that generics always come first is
instead aimed at reducing the number of Map operations on mgens,
assuming if the bloom filter does find a false positive, it'll
be able to reject the row without having to track a mapping.

- https://hur.st/bloomfilter/?n=3&p=&m=96&k=6

  Different functions have different amounts of inputs, and
  unification isn't very slow anyway, so figuring out a single
  ideal number of hash functions is nasty, but 6 keeps things
  low even up to 10 inputs.

- https://web.archive.org/web/20210927123933/https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.2442&rep=rep1&type=pdf

  This is the `h1` and `h2`, both derived from `h0`.
Diffstat (limited to 'compiler/rustc_pattern_analysis/src/errors.rs')
0 files changed, 0 insertions, 0 deletions