Releases: google/benchmark
Releases · google/benchmark
v1.9.1
What's Changed
- Fix Python manual timing example by @alxbilger in #1722
- Align benchmark::State to a cacheline. by @ckennelly in #1230
- Fix C4459: Rename a function parameter
profiler_manager
to avoid hiding the global declaration. by @fsb4000 in #1839 - Bump oldest supported Python to 3.10, eliminate setuptools-scm by @nicholasjng in #1842
- enable the /MP MSVC compiler argument for parallel compilation by @imrichardcole in #1846
- Added the functionality for a dry run benchmark called through the cli argument --benchmark_dry_run. by @dmah42 in #1851
- Version string correction in pkg-config files by @aespondac in #1858
- Add enum value from newest Windows SDK by @DKLoehr in #1859
- Fix spurious warning 'misc-use-anonymous-namespace' (#1860) by @codeinred in #1861
- Update user_guide.md by @aespondac in #1863
- upgrade bazel mods. requires c++14 for tests by @dmah42 in #1867
- Update nanobind_bazel to v2.2.0 by @nicholasjng in #1866
- bump googletest version to match bazel by @dmah42 in #1868
- Verify RegisterProfilerManager doesn't overwrite an existing registration by @xdje42 in #1837
- [#1487] ensure background color is preserved by @imrichardcole in #1865
- Add
nb::is_flag()
annotation to Counter::Flags by @nicholasjng in #1870 - Add a Python matrix to ensure the bindings build on all supported versions by @nicholasjng in #1871
- Declare a Python 3.13 toolchain, revert setup.py toolchain target sele… by @nicholasjng in #1876
- update standard to C++17 per C++ build support by @dmah42 in #1875
- Improve examples on
ComputeStatistics
by @guoci in #1881
New Contributors
- @alxbilger made their first contribution in #1722
- @fsb4000 made their first contribution in #1839
- @imrichardcole made their first contribution in #1846
- @aespondac made their first contribution in #1858
- @codeinred made their first contribution in #1861
- @guoci made their first contribution in #1881
Full Changelog: v1.9.0...v1.9.1
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