-
Notifications
You must be signed in to change notification settings - Fork 18
Miscellaneous fixes for third-party compatibility #82
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
Conversation
Merge upstream
- Add inline keyword to check_version_number static function in util.hpp to comply with Clang's stricter ODR checks on macOS arm64 - Update pthash submodule to cc4c9c9 with Clang fixes applied
|
By the way, I also noticed that you require |
|
Ok, I actually added the fixes for |
|
Hey Oleksandr! Thanks for these miscellaneous fixes :) Regarding the num. of threads, good to have it general, thanks! I was somehow lazy to make it general. For the table size checks in PTHash, the new master version of PTHash does not have them anymore as now we don't use the I will merge your changes into master and reflect those in the |
|
I just made another commit. It fixes some issues with multi-threading that we were getting when running our tests on large number of threads. In particular, you had the following recurrent pattern:
Using I also removed the strict assert in |
|
Regarding this last point, I think you're right. I was assuming that So the question is, what are the values of |
|
Particular failing configuration was with It also very annoyingly failed when running all tests at once, but was passing when filtering individual test suites out with |
|
Yes, I agree. Thanks for the fix :) I admit that I did not bother trying with tiny instances like N = 10 or so, |
Hi @jermp! I'm updating sshash submodule in Metagraph, and these are the fixes that we needed to make it run properly on our end. I wanted to also make a PR upstream with them, as they mostly generically useful:
target_include_directoriesinstead ofinclude_directoriesso that it's also propagated to external projects when usingadd_subdirectory.defined(__AVX2__)instead ofdefined(__x86_64__)to better match the intent of the check, and be more compatible with cross-compilation.canonicalize_basepair_reverse_mapto make sure sshash methods are still compatible withaa_uint_kmer_tinlineto some functions to suppress certain Clang warningsI also wanted to note that you have a bunch of
table_size += 1checks whentable_sizeis a power of two in the pthash submodule that is used in the current master branch of sshash. Unfortunately, checking for power of two is not enough in those cases, and the check should actually be for whethertable_sizeis even, as xoring all numbers at once with something will preserve or flip parity of all numbers at once, so if they're unevenly distributed, it would be impossible to find a perfect matching. This might be irrelevant to you by now, as I see that you no longer have this check in the newest version of pthash that wasn't propagated to sshash's master yet.