-
Notifications
You must be signed in to change notification settings - Fork 155
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
Swap ahash
with foldhash
#1294
base: main
Are you sure you want to change the base?
Swap ahash
with foldhash
#1294
Conversation
This fails MSRV, I guess hashbrown will be stuck as well |
I used to use
Maybe there have been additional features in |
That is a fair point. It is not strictly necessary, but I feel Also, it is a transitive dependency of |
The key reasons we use hashbrown on rustworkx is the default hasher is higher performance, it actually is surprising how much a difference using ahash made here when I did the benchmarking for it many years ago (I hadn't heard of foldhash before this PR though so I can't comment on that). We could have gotten this by directly using ahash on the stdlib hashmap though (or ahash's mapping type). The other key reason though was rayon support, we don't use it extensively but if we need a parallel iterator over a hashmap or hashset hashbrown has a rayon feature we can use. |
Yeah I was curious if the difference is still there, now that the stdlib uses the same implementation. But the transitive dependency due to |
This matches
hashbrown
's 0.15 release that switches the default hasher. This is more to keep consistency with the internals.I will put this on hold until #1293 is merged, we are still stuck with an older version of
hashbrown
until we update PyO3 anyway