Releases: google/benchmark
Releases · google/benchmark
v1.9.0
What's Changed
breaking
other
- Update benchmark Python bindings for nanobind 2.0, and update to nano… by @hawkinsp in #1817
- Revert to token authentication for PyPI wheel uploads by @nicholasjng in #1819
- Suppress invalid-offsetof warning for clang by @DKLoehr in #1821
- Use log2 now that NDK requires at least API 21 which includes it. by @dmah42 in #1822
- Update libs into .pre-commit-config.yaml by @mosfet80 in #1825
- Update nanobind into benchmark_deps.bzl by @mosfet80 in #1826
- Bump nanobind-bazel to v2.1.0, add stubgen target by @nicholasjng in #1824
- Move ProfilerManager Start/Stop routines closer to benchmark #1807 by @xdje42 in #1818
- Cache upd by @mosfet80 in #1830
- Update clang-format-lint-action by @mosfet80 in #1829
- chore: update perf_counters.cc by @eltociear in #1831
New Contributors
- @hawkinsp made their first contribution in #1817
- @DKLoehr made their first contribution in #1821
- @eltociear made their first contribution in #1831
Full Changelog: v1.8.5...v1.9.0
v1.8.5
What's Changed
- Improve compatibility with Hexagon hardware by @steven-johnson in #1785
- hotfix: Correct pypi-publishing action tag to v1.8.14 by @nicholasjng in #1791
- CMake: unbreak version handling for tarballs by @LebedevRI in #1793
- cycleclock: Fix type conversion to match function return type by @kraj in #1794
- bump standard to C++14 by @dmah42 in #1799
- Docs: Bump minimum required C++ version from C++11 to C++14 by @rschu1ze in #1800
- cycleclock: Fix type conversion to match function return type on riscv64 by @kraj in #1802
- [bazel] Use
includes
instead ofstrip_include_prefix
by @alexkaratarakis in #1803 - Find libpfm dependency in installed CMake configs by @stephenswat in #1806
- Add -lkstat to the .pc for Solaris by @ccotter in #1801
- add PERF_FORMAT_TOTAL_TIME_{ENABLED,RUNNING} to support multiplexing by @dmah42 in #1814
- Clarify the difference between
BENCHMARK_TEMPLATE_F
andBENCHMARK_TEMPLATE_DEFINE_F
+BENCHMARK_REGISTER_F
by @jiawen in #1815 - [FR] Add API to provide custom profilers #1807 by @xdje42 in #1809
New Contributors
- @steven-johnson made their first contribution in #1785
- @kraj made their first contribution in #1794
- @rschu1ze made their first contribution in #1800
- @alexkaratarakis made their first contribution in #1803
- @stephenswat made their first contribution in #1806
- @ccotter made their first contribution in #1801
- @jiawen made their first contribution in #1815
- @xdje42 made their first contribution in #1809
Full Changelog: v1.8.4...v1.8.5
v1.8.4
What's Changed
- Audit MSVC references in cmake files to consider clang++ by @Maetveis in #1669
- Make json and csv output consistent. by @andreas-abel in #1662
- Update bazel.yml by @mosfet80 in #1671
- Fix building on MinGW: default
WINVER
is too old by @zm1060 in #1681 - Increase the kMaxIterations limit by @andreas-abel in #1668
- Set -Wno-unused-variable for tests by @oontvoo in #1682
- Add no-unititialized-variable to tests by @dmah42 in #1683
- Add Python 3.12 support by @nicholasjng in #1676
- Change nanobind linkage to response file approach on macOS by @nicholasjng in #1638
- Reapply size optimizations for clang & MSVC, LTO for Mac+Linux by @nicholasjng in #1685
- [bindings] Add LTO builds on Windows+MSVC by @nicholasjng in #1687
- Add pre-commit config and GitHub Actions job by @nicholasjng in #1688
- Replace isort hook with ruff builtin import sorting by @nicholasjng in #1689
- Add
setuptools_scm
for dynamic zero-config Python versioning by @nicholasjng in #1690 - Fix unit tests compilation by non-gnu/msvc compilers with c++11 support. by @ivafanas in #1691
- Fixed compiler warnings by @tmiguelf in #1697
- Switch out black for ruff format by @nicholasjng in #1698
- Add Missing
\n
at the End of Error Log String by @itzmeanjan in #1700 - Fix CMakeLists.txt for perf_counters_test by @illbegood in #1701
- [CI] Fix sanitizer builds by pinning the LLVM revision by @LebedevRI in #1703
- Support windows MSYS2 environments by @LebedevRI in #1704
- Fix
pre-commit
GitHub Actions job by @nicholasjng in #1708 - [NFC]
complexity_n
is not ofIterationCount
type by @LebedevRI in #1709 - Fix editable install by unsetting
build_ext.copy_extensions_to_source
by @nicholasjng in #1710 - Upgrade core bazel dependencies by @nicholasjng in #1711
- Run
pre-commit autoupdate
, fix stale pyproject.toml comments by @nicholasjng in #1712 - Check out repo at depth 0 for Python tests, bump Python and PyPI actions by @nicholasjng in #1713
- Fix mis-matching argument in closing tag for cmake macro (#1714) by @iakovs in #1715
- define HOST_NAME_MAX for z/OS by @abhina-sree in #1717
- Fix division by zero for low frequency timers for CV statistics by @ivafanas in #1724
- Remove the use of "Sanity" and replace it with "Safety" by @hamptonm1 in #1728
- CycleClock: use RDTIME instead of RDCYCLE on RISC-V by @aurel32 in #1727
- Enable Large-file Support by @oToToT in #1726
- Fix per-thread timing error on z/OS by @abhina-sree in #1719
- Avoid leaking LFS flags to reverse dependencies by @afq984 in #1730
- Change Fixture to use non-const SetUp and TearDown in example by @FantasqueX in #1723
- fix: fail to import gbench in bazel and python3.12 by @dhmemi in #1721
- Issue1731 created console does not receive output by @bstordrup in #1732
- tools/compare: don't actually discard valid (but zero)
pvalue
by @LebedevRI in #1733 - Issue 1734: Streams not flushed if not running actual benchmarks by @bstordrup in #1735
- fix(cmakelists.txt): enforce CMake to find PFM or fail when BENCHMARK… by @ananta in #1705
- Docs:
reducing_variance.md
: proofreading, fix typos by @LebedevRI in #1736 - Fix C-style typecasting in QNX-specific code by @Arech in #1739
- Bump pre-commit dependencies by @nicholasjng in #1740
- Output library / schema versions in JSON context block by @LebedevRI in #1742
- set library version in bazel by @dmah42 in #1746
- Add
BENCHMARK_TEMPLATE[12]_CAPTURE
, fusion ofBENCHMARK_CAPTURE
andBENCHMARK_TEMPLATE
by @LebedevRI in #1747 - Deflake CI by @LebedevRI in #1751
- Fix typo in GetBenchmarkVersion() by @Liedtke in #1755
- CycleClock: Add support for Alpha architecture by @thesamesam in #1753
- sysinfo.cc: Always abort on GetNumCPUs failure by @thesamesam in #1756
- Rewrite complexity_test to use (hardcoded) manual time by @LebedevRI in #1757
- Revert "fix some warnings" by @LebedevRI in #1762
- Fixed LTO issue on no discard variable by @tmiguelf in #1761
- mitigate clang build warnings -Wconversion by @dmah42 in #1763
- Add Python bindings build using bzlmod by @nicholasjng in #1764
- Fix implicit conversion changes signess warning in perf_counters.cc by @ivafanas in #1765
- clang-tidy broke the world by @LebedevRI in #1766
- allow BENCHMARK_VERSION to be undefined by @PhilipDeegan in #1769
- fix OpenBSD build by @vazub in #1772
- Remove COMPILER_IBMXL macro for z/OS by @fanbo-meng in #1777
- Refactor: Return frequency as double by @dhairyarungta in #1782
- Add
benchmark_main.pc
to linkmain()
containing library by @SoapGentoo in #1779 - Switch git override to stable BCR tag for nanobind_bazel by @nicholasjng in #1778
- Modernize wheel building job config by @nicholasjng in #1783
- preparing for v1.8.4 by @dmah42 in #1788
New Contributors
- @Maetveis made their first contribution in #1669
- @andreas-abel made their first contribution in #1662
- @mosfet80 made their first contribution in #1671
- @zm1060 made their first contribution in #1681
- @ivafanas made their first contribution in #1691
- @tmiguelf made their first contribution in #1697
- @itzmeanjan made their first contribution in #1700
- @illbegood made their first contribution in #1701
- @iakovs made their first contribution in #1715
- @aurel32 made their first contribution in #1727
- @oToToT made their first contribution in #1726
- @afq984 made their first contribution in #1730
- @FantasqueX made their first contribution in #1723
- @dhmemi made their first contribution in #1721
- @bstordrup made their first contribution in #1732
- @ananta made their first contribution in #1705
- @Arech made their first contribution in #1739
- @Liedtke made their first contribution in #1755
- @thesamesam made their first contribution in #1753
- @vazub made their first contribution in #1772
- @dhairyarungta made their first contribution in #1782
- @SoapGentoo made their first contribution in #1779
Full Changelog: v1.8.3...v1.8.4
v1.8.3
What's Changed
- Fix broken PFM-enabled tests by @macandy13 in #1623
- Update tools.md for missing color meaning issue #1491 by @varshneydevansh in #1624
- Add pyproject.toml file for PEP518 compliance by @nicholasjng in #1625
- pfm: Use a more standard CMake approach for finding libpfm by @chipot in #1628
- Bump
nanobind
to stable v1.4.0 tag by @nicholasjng in #1626 - Bump scipy from 1.5.4 to 1.10.0 in /tools by @dependabot in #1630
- Downgrade bazel to windows-2019 by @dmah42 in #1629
- Add tests for Human Readable functionality by @dmah42 in #1632
- Delete unused requirements file, simplify nanobind build file by @nicholasjng in #1635
- Update bzlmod support to new rules_python extension API by @jsharpe in #1633
- Re-enable
windows-latest
tests for newer Bazel by @nicholasjng in #1641 - Fix
-Werror,-Wold-style-cast
build failure on Windows. by @saran-t in #1637 - Mark internal deps as dev_depenencies so that downstream modules don't require those by @macandy13 in #1640
- bug: Inconsistent suffixes console reporter 1009 by @varshneydevansh in #1631
- Fix IntelLLVM compiler error by @joannapng in #1644
- fix: added benchmark_counters_tabular for file by @varshneydevansh in #1645
- [perf-counters] Fix pause/resume by @mtrofin in #1643
- sysinfo.cc: Call getloadavg for Android API >= 29 by @jmr in #1649
- benchmark.cc: Fix benchmarks_with_threads condition by @jmr in #1651
- perf-counters: Make tests pass on Android by @jmr in #1653
- State: Initialize counters with kAvgIteration in constructor by @jmr in #1652
- perf_counters: Initialize once only when needed by @jmr in #1656
- test: Use gtest_main only when needed by @jmr in #1657
- StatisticsMedian: Fix bug by @jmr in #1658
New Contributors
- @varshneydevansh made their first contribution in #1624
- @chipot made their first contribution in #1628
- @dependabot made their first contribution in #1630
- @jsharpe made their first contribution in #1633
- @saran-t made their first contribution in #1637
- @joannapng made their first contribution in #1644
- @jmr made their first contribution in #1649
Full Changelog: v1.8.2...v1.8.3
v1.8.2
v1.8.1
What's Changed
- Disable debug-only test in release builds to avoid expected failures. by @macandy13 in #1595
- Fix code triggering -Wsign-conversion by @oontvoo in #1596
- Update Python version to PY3, as indicated by the actual source file. by @macandy13 in #1598
- Fixed a typo in docs by @toughengineer in #1600
- Fix pass rvalue to DoNotOptimize by @bgaifullin in #1608
- Fix a typo in regex choice by @Chilledheart in #1610
- remove old-style (C-style) casts by @garymm in #1614
- Add support for bzlmod (excluding Python bindings) by @macandy13 in #1615
- Add a CI test for the new bzlmod integration by @macandy13 in #1617
- Suppress intentional potential memory leak as detected by clang static analysis by @LebedevRI in #1618
New Contributors
- @macandy13 made their first contribution in #1595
- @toughengineer made their first contribution in #1600
- @bgaifullin made their first contribution in #1608
- @Chilledheart made their first contribution in #1610
- @garymm made their first contribution in #1614
Full Changelog: v1.8.0...v1.8.1
v1.8.0
What's Changed
- Removed deprecated function by @oontvoo in #1506
- Return option benchmark_perf_counters to help output by @MaximSmolskiy in #1508
- Fixes incorrect wide string conversion on win32 by @JessyDL in #1516
- Try removing attempt to set the C++ standard by @dmah42 in #1464
- Add a
benchmark_deps.bzl
function to Google Benchmark by @nicholasjng in #1520 - Bug fix variable 'actual_iterations' set but not used by @yuryf-google in #1517
- Fix Clang-Tidy warnings related to modernize-use-override by @SunBlack in #1523
- Fix typos found by codespell by @SunBlack in #1519
- Include the benchmark's family-name in State by @oontvoo in #1511
- Fix Clang-Tidy warnings readability-else-after-return by @SunBlack in #1528
- [doc]Add quick instructions on how to enable sans checks by @oontvoo in #1529
- Modernize setup.py, extend Python bindings CI by @nicholasjng in #1535
- Switch bindings implementation to
nanobind
by @nicholasjng in #1526 - try disabling liquid for jekyll to fix curly braces by @dmah42 in #1536
- remove best effort support for ubuntu 18.04 by @dmah42 in #1537
- Deprecate constant reference API to DoNotOptimize. by @ckennelly in #1493
- Fixing issue with ARM64EC and MSVC by @jbr-smtg in #1514
- fix #1446 by removing the address operator by @dmah42 in #1538
- Support --benchmarks_filter in the compare.py 'benchmarks' command by @matta in #1486
- Allow specifying number of iterations via --benchmark_min_time. by @oontvoo in #1525
- Refactor links which include "master" and change it to "main" by @hamptonm1 in #1540
- replace complexity with simplicity for faster libc++ setup by @dmah42 in #1539
- update github actions to latest versions by @dmah42 in #1541
- Removing warnings appearing with C++20 / CLang 15 by @yuryf-google in #1542
- Add missing parentheses in ParseBenchMinTime() by @JonathonReinhart in #1545
- Werror all the time by @dmah42 in #1546
- cleanup: support CMake >= 3.10 by @coryan in #1544
- Fix CPU frequency estimation on riscv by @dtcxzyw in #1549
- add compiler to build-and-test and create min-cmake CI bot by @dmah42 in #1550
- Implement unlimited number of performance counters by @HFTrader in #1552
- Filter performance counter names, not invalidate all by @HFTrader in #1554
- get rid of
DoNotOptimize
warnings in tests by @dmah42 in #1562 - Refactoring of PerfCounters infrastructure by @HFTrader in #1559
- Bump nanobind to stable v0.2.0, change linker options by @nicholasjng in #1565
- Fix examples in user guide using deprecated
DoNotOptimize
-API by @mjacobse in #1568 - Fix build break with nvc++ when -Werror is ON by @HFTrader in #1569
- [FR] state.SkipWithMessage #963 by @gatorfax in #1564
- use std::string for skip messages by @dmah42 in #1571
- [FR] Provide public accessors to benchmark name and arguments #1551 by @gatorfax in #1563
- Address warnings on NVIDIA nvc++ by @HFTrader in #1573
- add '@' to correctly reference build file for libpfm by @dmah42 in #1575
- Convert uses of
const char*
tostd::string
by @dmah42 in #1567 - link to benchmark directly for tests that aren't link_main_test by @dmah42 in #1576
- Fix compile warnings about ignoring a [[nodiscard]] type. by @pkasting in #1577
- Correct libpfm dep for integrators. by @shiqing117 in #1579
- Guard NOMINMAX to prevent redefinition error (#1581) by @dushko in #1582
- reenable msan sanitizer workflow by @dmah42 in #1589
New Contributors
- @MaximSmolskiy made their first contribution in #1508
- @JessyDL made their first contribution in #1516
- @yuryf-google made their first contribution in #1517
- @SunBlack made their first contribution in #1523
- @jbr-smtg made their first contribution in #1514
- @hamptonm1 made their first contribution in #1540
- @JonathonReinhart made their first contribution in #1545
- @coryan made their first contribution in #1544
- @dtcxzyw made their first contribution in #1549
- @HFTrader made their first contribution in #1552
- @gatorfax made their first contribution in #1564
- @pkasting made their first contribution in #1577
- @shiqing117 made their first contribution in #1579
- @dushko made their first contribution in #1582
Full Changelog: v1.7.1...v1.8.0
v1.7.1
What's Changed
- Remove stray comment and added missing header by @oontvoo in #1444
- Initialize help hook before actually parsing the command line by @yurikhan in #1447
- remove unnecessary generated include directory by @dominichamon in #1451
- Fixed build issues on window by @oontvoo in #1449
- Explicitly cast int literals to int8_t in tests to silence implicit-conversion warnings by @oontvoo in #1455
- Ensure we don't need benchmark installed to pass c++ feature checks by @dominichamon in #1456
- Avoid deprecation warning in NVHPC by @cz4rs in #1459
- run ClearRegisteredBenchmarks at exit by @dominichamon in #1463
- FIx typo in benchmark.h by @bdaase in #1465
- add debug option for enabling more output for failed cxxfeaturechecks by @dominichamon in #1467
- Fix link error when use as static library on windows. by @PSyton in #1470
- use CMAKE_INSTALL_FULL in pkg-config file (fixes nix package) by @babbaj in #1473
- Clean up test documentation formatting by @drfloob in #1475
- Enable aarch64 Linux wheel builds, use cibuildwheel action directly by @nicholasjng in #1472
- Eliminate usage of deprecated API in sysinfo.cc by @oontvoo in #1474
- Stop using pandas.Timedelta (fixes #1482) by @matta in #1483
- Discuss sources of variance in the user guide by @matta in #1481
- Bump pybind11 version to enable Python 3.11 wheel builds by @nicholasjng in #1489
- bump cmake dep and docs by @dominichamon in #1468
- Support for QuRT OS (Hexagon RTOS) by @Maratyszcza in #1497
- Fix Solaris compilation (#1499) by @rorth in #1500
- Do not depend on unversioned python binary by @MatzeB in #1496
- Partially revert "Do not depend on unversioned python binary (#1496)" by @LebedevRI in #1501
- Add information for supported Python versions to setup.py by @nicholasjng in #1502
- [bazel] Build libpfm as a dependency to allow collection of perf counters by @rajachan in #1408
New Contributors
- @bdaase made their first contribution in #1465
- @PSyton made their first contribution in #1470
- @babbaj made their first contribution in #1473
- @drfloob made their first contribution in #1475
- @rorth made their first contribution in #1500
- @MatzeB made their first contribution in #1496
- @rajachan made their first contribution in #1408
Full Changelog: v1.7.0...v1.7.1
v1.7.0
Small release to replace broken v1.6.2 release
What's Changed
- Stop generating the export header and just check it in by @dominichamon in #1435
- use target_compile_definitions by @dominichamon in #1440
- simplified code by @maochongxin in #1439
New Contributors
- @maochongxin made their first contribution in #1439
Full Changelog: v1.6.2...v1.7.0
v1.6.2
What's Changed
- Add docs for
ThreadRange
. by @dominichamon in #1318 - Add docs on Memory profiling (#1217). by @dominichamon in #1319
- Suppress GoogleTest warnings on windows (MSVC) too. by @dominichamon in #1320
- Expand documentation for unpacking arbitrary arguments. by @dominichamon in #1324
- Refine docs on changing cpufreq governor by @dominichamon in #1325
- Refine the User Guide CPU Frequency Scaling section by @matta in #1331
- Fix some errors in Custom Statistics document demo code. by @YuanYingdong in #1332
- Cache PerfCounters instance in PerfCountersMeasurement by @taoliq in #1308
- Fix cross compilation for macOS ARM builds in
cibuildwheel
by @nicholasjng in #1334 - bump numby, as per dependabot by @dominichamon in #1336
- Use Win32 API only for Win32 apps by @batortaller in #1333
- Add mutex when reading counters_ (Fixes #1335) by @taoliq in #1338
- Avoid potential truncation issues for the integral type parameterized tests. by @staffantj in #1341
- Expose default display reporter creation in public API by @dominichamon in #1344
- explicitly export public symbols by @sergiud in #1321
- Check for macro existence before using by @oontvoo in #1347
- simplify reference to internal path by @dominichamon in #1349
- Introduce the possibility to customize the help printer function by @vincenzopalazzo in #1342
- move bzl file out of tools by @dominichamon in #1352
- resolve case sensitivity issues with
WORKSPACE
andworkspace
by @dominichamon in #1354 - Make generate_export_header.bzl work for Windows. by @junyer in #1355
- @platforms is magical; remove it from WORKSPACE. by @junyer in #1356
- restore
BENCHMARK_MAIN()
by @sergiud in #1357 - Allow setting the default time unit globally by @batortaller in #1337
- Add long description and content type for proper PyPI presentation by @nicholasjng in #1361
- Add SetBenchmarkFilter() to set --benchmark_filter flag value in user code by @oontvoo in #1362
- Appended additional BSD 3-Clause to LICENSE by @oontvoo in #1363
- Add PyPI upload job to wheel building workflow by @nicholasjng in #1359
- Fix float comparaison and add float comparison warning by @bensuperpc in #1368
- Update LICENSE file to clearly state which file needs BSD 3 by @oontvoo in #1366
- Add BENCHMARK_STATIC_DEFINE to the Python bindings'
cc_binary
local… by @nicholasjng in #1369 - Remove conditional trigger from PyPI upload job by @nicholasjng in #1370
- Change artifact download name to dist to match upload name by @nicholasjng in #1371
- Build
//:benchmark
as a static library only. by @junyer in #1373 - Fix Bazel build breakage caused by commit 6a894bd. by @junyer in #1374
- [nfc] Reformat doc-string in generate_export_header by @oontvoo in #1376
- Updates for inclusive language by @messerb5467 in #1360
- getting sysinfo in line with Google style by @dominichamon in #1381
- Small optimization to counter map management by @dominichamon in #1382
- Shut down Bazel gracefully and revert wheel build strategy to job matrix by @nicholasjng in #1383
- Fix wheel job name for PyPI uploads by @nicholasjng in #1384
- Filter out benchmarks that start with "DISABLED_" by @dominichamon in #1387
- Add benchmark labels to the output of the comparison tool by @dominichamon in #1388
- Enable -Wconversion by @dominichamon in #1390
- Add installation and build instructions for Python bindings by @nicholasjng in #1392
- fix some typos by @cuishuang in #1393
- Add option to get the verbosity provided by commandline flag -v (#1330) by @Matthdonau in #1397
- Add support to get clock for new architecture CSKY by @zixuan-wu in #1400
- Introduce warmup phase to BenchmarkRunner (#1130) by @Matthdonau in #1399
- Report large numbers in scientific notation in console reporter (#1303) by @Matthdonau in #1402
- add multiple OSes to bazel workflow by @dominichamon in #1412
- Add possibility to ask for libbenchmark version number (#1004) by @Matthdonau in #1403
- Fix DoNotOptimize() GCC copy overhead (#1340) by @alexgpg in #1410
- Clarify that the cpu frequency is not used for benchmark timings. by @dominichamon in #1414
- Revert "Add possibility to ask for libbenchmark version number (#1004)" by @dominichamon in #1417
- Remove redundant formatting tags by @tomcobley in #1420
- Fix DoNotOptimize() GCC compile error with some types (#1340) by @alexgpg in #1424
- Expose default help printer function by @yurikhan in #1425
- fix sanitizer builds by using clang 13 by @dominichamon in #1426
- Suppress nvcc
offsetof
warning by @cz4rs in #1429 - Expose google_benchmark.State for python bindings. by @rmcilroy in #1430
New Contributors
- @YuanYingdong made their first contribution in #1332
- @taoliq made their first contribution in #1308
- @batortaller made their first contribution in #1333
- @vincenzopalazzo made their first contribution in #1342
- @messerb5467 made their first contribution in #1360
- @cuishuang made their first contribution in #1393
- @Matthdonau made their first contribution in #1397
- @zixuan-wu made their first contribution in #1400
- @alexgpg made their first contribution in #1410
- @tomcobley made their first contribution in #1420
- @yurikhan made their first contribution in #1425
- @cz4rs made their first contribution in #1429
- @rmcilroy made their first contribution in #1430
Full Changelog: v1.6.1...v1.6.2