typekey_hash
: length-independent run time for hashing long Vararg
#57795
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I'm not familiar with the C code, and I'm not sure this change is correct, but playing with it in the REPL doesn't reveal any obvious bugs.
Prior to this change, the run time of an operation like
Tuple{Vararg{T, 1000000}} where {T}
scales linearly with the field count (1000000 in this example). The goal of this change is to make the run time be independent from the field count.The idea is to simply return the same hash for all field counts greater than or equal to a cut off.
Follows up on PR #50932, which introduced the loop linear in the field count.