Skip to content
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

CI fixes #300

Merged
merged 19 commits into from
Sep 28, 2024
Merged

CI fixes #300

merged 19 commits into from
Sep 28, 2024

Conversation

darkk
Copy link
Contributor

@darkk darkk commented Sep 27, 2024

That's a separate PR accumulating several small fixes for verification value & build failures, as discussed at #293 (comment)

It closes #284, #294 and #296.

Fixes rurban#284 by disabling PMP_Multilinear not only on aarch64, but also
on arm64. Those are the same things under different labels.
It's not 100% clear to me if it's UB, CC bug or lack of some kind
of memory barrier, but the very same quite innocent-looking code leads
to different results on macos-arm64 platform and breaks nmhash32

See rurban#294
--test=VerifyAll, --test=VerifyAll ${hash} and --test=Sanity ${hash} use
the same verification value, so the hashes should start with the same
initialisation code.
That fixes windows build and test=VerifyAll doing Hash_init()
It's unclear to me if it should be `0` (SKIP) or just a value that
is quite common across platforms and compilers.

See rurban#294
It does not highlight any issues so far, but might come handy in future.
It fixes arm builds, including macos-14-arm64

polymur Verification value 0xA612032C means that polymur_seed_init()
was not called. Currently, polymur is compiled in unconditionally,
so it should be initialized unconditionally as well.

See rurban#294, rurban#296, rurban#297, rurban#298 and rurban#299.
It fixes arm builds, including macos-14-arm64

Verification value 0x9FBDD2B1 for k-hashv32 and 0x70E67C61 for k-hashv64
signal, that the has was not properly seeded. Currently, k-hashv32
and k-hashv64 are compiled depending on HAVE_KHASHV from CMakeLists.txt,
so initialization should be done depending on same macro as well.

See rurban#294
That fixes aarch64 test=VeryfiAll as umash was built for that platform,
but umash_seed_init() was not called due to mismatch in #ifdef's.
The test vectors are `golden128` from
https://github.com/golang/go/blob/master/src/hash/fnv/fnv_test.go

FNV128("") =    6c62272e07bb014262b821756295c58d
FNV128("a") =   d228cb69101a8caf78912b704e4a141e
FNV128("ab") =  0880945aeeab1be95aa073305526c088
FNV128("abc") = a68bb2a4348b5822836dbc78c6aee73b
@rurban
Copy link
Owner

rurban commented Sep 28, 2024

Thanks a lot!

@rurban rurban merged commit 1d85820 into rurban:master Sep 28, 2024
10 checks passed
@darkk darkk deleted the ci-fixes branch September 29, 2024 13:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Build error: no viable overloaded '+=' (macOS 14.4.1)
2 participants