-
Notifications
You must be signed in to change notification settings - Fork 36.6k
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
test: update nanobench from release 4.0.0 to 4.3.4 #22082
Conversation
This update should also fix #21549 |
Should we consider turning the nanobench import into a git-subtree? |
2e17c6d
to
d728cfe
Compare
This sounds like a good idea. I've never used this feature though, is this something that I can do in the PR, or is this something only a maintainer can do? |
Concept ACK
Not opposed to it, but I'm not sure adding a subtree for what is one single file makes that much sense. Now at least we don't have to carry any additional files that might be in the repository. E.g. we don't subtree tinyformat either. |
Concept ACK |
Concept ACK - I agree that adding a subtree for a single header seems like overkill. Updates to this file would also seem to be very infrequent. |
I mostly do minor bugfixes now and then when they arise, but I'd consider nanobench to be finished. So there won't be any major updates. |
Concept ACK |
Does that mean we can remove the suppression? |
It should work, but I didn't try it in the bitcoin repository. Also I don't have clang12 (yet). Should I add a commit to remove the suppression? |
Yes, CI should check it |
ci didn't like that. maybe the annotation needs to be on |
yes, it needs to be there too... its the code for a fast random generator, so overflows are expected. |
This updates the third-party library nanobench with the latest release. It contains mostly minor bugfixes, a new pyperf output format, ability to suppress warnings with environment variable `NANOBENCH_SUPPRESS_WARNINGS`. Full changelog: v4.0.2 * Changed `doNotOptimizeAway` to what google benchmark is doing. The old code did not work on some machines. * fix: display correct "total" value * minor Documentation updates v4.1.0 * Updated link to new pyperf home * Adds ability to configure console output time unit * Add support for environment variable `NANOBENCH_SUPPRESS_WARNINGS` * Nanobench is now usable with CMake's FetchContent (see documentation: https://nanobench.ankerl.com/tutorial.html#cmake-integration) v4.2.0 * Ability to store and later compare results added, through `pyperf`. * See https://nanobench.ankerl.com/tutorial.html#pyperf-python-pyperf-module-output * Added lots of build targets to travis, similar to bitcoin's build. * Some minor API & documentation improvements v4.3.0 * `ankerl::nanobench::Rng` can now return the state with `std::vector<uint64_t> Rng::state()`, and this can also be used to initialize the Rng. v4.3.1 * Minor cmake improvements when integrationg as a third-party library: add alias `nanobench::nanobench`, default to C++17 v4.3.2 * Fixed a MSVC 2015 build problem * updates license to 2021. * build should now work with very old linux headers * Also disable UBSAN (bitcoin needed to add a suppression) v4.3.3 * Do not use locale-dependent `std::to_string` v4.3.4 * Add missing sanitizer suppression to `rotl`
In bitcoin#21738 an ASAN suppression for nanobench was added. This is not needed any more,as nanobench.h already includes the necessary suppressions for the relevant code.
9a78ce4
to
44d05d0
Compare
I've created a new nanobench release for the missing annotation, then rebased with this version, now it compiles with the removed suppression. Ready for review! |
review ACK 44d05d0 |
This updates the third-party library nanobench with the latest release. It contains mostly minor bugfixes, a new pyperf output format, ability to suppress warnings with environment variable
NANOBENCH_SUPPRESS_WARNINGS
. Full changelog:v4.0.2
doNotOptimizeAway
to what google benchmark is doing. The old code did not work on some machines.v4.1.0
NANOBENCH_SUPPRESS_WARNINGS
v4.2.0
pyperf
.v4.3.0
ankerl::nanobench::Rng
can now return the state withstd::vector<uint64_t> Rng::state()
, and this can also be used to initialize the Rng.v4.3.1
nanobench::nanobench
, default to C++17v4.3.2
v4.3.3
std::to_string
v4.3.4
rotl