Repository navigation
Add build(long[], int); document hash edge cases; POM fixes - #1
Merged
Merged
Conversation
- BinaryFuse8/16.build(long[] keys, int length) builds from a prefix of the array without copying it. - Document the two degenerate inputs of WyHash.hash64(key, seed) and test that the fixed seed sequence never produces the degenerate seed. The hash itself is unchanged: it is part of serialization format 1. - pom.xml: <scm><url> is now the browsable GitHub URL; explain why the release repository URL points at Maven Central (Njord convention). Filters are byte-identical to those built by 0.0.1.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
BinaryFuse8/16.build(long[] keys, int length): build from the firstlengthkeys of an array (e.g. a partly filled buffer) without copying it.build(long[])delegates to it.WyHash.hash64(key, seed)multiplieskey ^ P0byseed ^ P1. The keyP0hashes to the same value for every seed; that's harmless, since one key can't make construction fail, and a test covers it. A seed equal toP1would map every key to the same value; a new test checks that the firstMAX_ATTEMPTSseeds of the fixed sequence all differ fromP1.Fuse.hashis deliberately unchanged: it is part of serialization format 1, and changing it would make existing filters return false negatives.<scm><url>is now the browsablehttps://github.com/FastFilter/jbinfuse. A comment explains why the release repository URL points at Maven Central: it's Njord's convention (JavaFastPFOR does the same), and the workflow deploys through Njord.Compatibility: filters built by this branch are byte-identical to 0.0.1's (checked by SHA-256 over 8-bit and 16-bit filters for n = 0…2,000,000, including inputs with duplicates).
Tests: 33 pass on JDK 21 (
./mvnw verify), up from 30.