What's Changed
- exclude linking to lib rt for QNX to avoid linking error by @Osama131 in #2114
- fix(pyproject): Update license to SPDX identifier by @nicholasjng in #2120
- Replicate generic hardware events on all CPU PMUs by @pcc in #2123
- #2125: Fix error: format string is not a string literal (#2126) by @sergio-nsk in #2126
- Revert "Remove redundant feature checks on re-run of CMake config ste… by @dsharlet in #2127
- Bump the version of python used for pip. by @dmah42 in #2130
- Add BENCHMARK_NAMED macro for named benchmarks without lambda by @5kng in #2135
- cmake: cache HAVE_* results to skip feature checks on re-runs by @5kng in #2137
- multiple fixes to avoid Windows x64 crashes by @dmah42 in #2139
- Refactor/modularize headers by @dmah42 in #2140
- refactor ToExponentAndMantissa to use StrFormat instead of std::stringstream by @dmah42 in #2138
- Fix CMake detection on pthread_affinity test on FreeBSD by @aokblast in #2146
- Add WASI compatibility by @ashvardanian in #2144
- docs: document benchmark_min_time CLI forms by @felmonon in #2154
- feat: Add ScopedPauseTiming RAII helper by @dmah42 in #2157
- Fix two GCC 16 issues by @gruenich in #2164
- [doc] Properly document CMake minimum required version as 3.13 by @gruenich in #2162
- In PerfCountersTest.MultiThreaded, serialize worker threads by @musicinmybrain in #2175
- Fix thread safety attribute detection failing to link in CMake check by @anishesg in #2178
- Replace deprecated _ReadWriteBarrier with std::atomic_signal_fence in MSVC path by @qorexdevs in #2177
- docs: document benchmark argument names by @shreejaykurhade in #2180
- Docs: JSON output format by @shreejaykurhade in #2181
- BENCHMARK_ENABLE_WERROR=Off should also disable -pedantic-errors by @ednolan in #2183
- docs: Add comprehensive command-line options documentation by @jlaportebot in #2187
- Fix .gitignore to unignore .cmake files recursively under cmake/ by @ShawayL in #2191
- Sort entry in AUTHORS and CONTRIBUTORS by @ShawayL in #2192
- Add -lpfm to pkg-config Libs.private when libpfm is enabled by @kiwigitops in #2194
- Fix pkg-config paths for absolute install dirs by @Haihan-Jiang in #2198
- Add AGENTS.md by @LebedevRI in #2202
- Clarify benchmark_main CMake target usage by @Haihan-Jiang in #2205
- Document static library benchmark registration by @Haihan-Jiang in #2200
- Document CMake embedding guidance by @Haihan-Jiang in #2203
- Skip errored runs when computing repetition statistics by @Haihan-Jiang in #2199
- Clarify DoNotOptimize const-ref warning by @Haihan-Jiang in #2201
- Skip perf counter tests when counters are unavailable by @Haihan-Jiang in #2204
- Tune AGENTS.md by @LebedevRI in #2208
- CONTRIBUTING: actually link to AGENTS.md by @LebedevRI in #2211
- Disable allocation zeroing in benchmarks on Android by @charlesmunger in #2214
- Handle missing locale in test on more platforms by @alyssais in #2219
- Fix up windows tests by @dmah42 in #2220
- Introduce Rust bindings by @dmah42 in #2221
- better rust build/test by @dmah42 in #2223
- rust bindings: keep argv[0] alive across benchmark reporting by @Alearner12 in #2237
- docs: document Bazel integration by @tuna4ll in #2238
- Run an autofix pass on github workflows using zizmor by @dmah42 in #2233
- fix(linux): prevent infinite re-exec loop under AppArmor by @anishesg in #2239
- Make --benchmark_list_tests respect --benchmark_format by @devtejasx in #2245
- Fix typos, add codespell configuration by @mwtoews in #2262
- Fix compile error with clang -Werror -Wunused-template by @aokblast in #2268
- Fix use-after-free in CreateDefaultDisplayReporter (#2240) by @devtejasx in #2265
- Exclude setup/teardown from the MemoryManager measurement window (#2149) by @devtejasx in #2276
- Make random number generator thread-local in perf_counters_gtest. by @oontvoo in #2283
- Update Bazel tooling for Python bindings by @stanbot8 in #2287
- Fix tsan/asan/hwasan/etc failures on Android by @charlesmunger in #2229
- Ignore skipped benchmark when computing geomean by @Krzmbrzl in #2290
- Py tooling: fix Windows terminal color output and handle color flags in compare.py (fixes #642) by @jdymitarai in #2297
- Report the complexity aggregates in the family's time unit by @lenamonj in #2294
- Replace offsetof cache-line check with a well-defined runtime check (#1877) by @devtejasx in #2264
- Detect thread safety attribute support in mutex.h (#2263) by @devtejasx in #2275
- Diagnose invalid PauseTiming()/ResumeTiming() calls (#2235) by @devtejasx in #2274
- Register Python 3.14 with Bazel by @stanbot8 in #2307
- feat: allow custom multiplier in Benchmark::ThreadRange (fixes #1531) by @ReturnKartikey in #2304
- Pass State to ProfilerManager via new WithState hooks (#2234) by @Chaturvediharsh123 in #2313
- feat(reporter): introduce scientific notation for counters in console (fixes #818) by @ReturnKartikey in #2305
- fix(timing): Do not resume timing in pause scope on skipped benchmarks by @nicholasjng in #2318
- Guard result.rms against division by zero by @stanbot8 in #2317
- Add Python 3.13–3.15 and free-threading wheel support by @hawkinsp in #2314
- Apply UseManualTime to BM_bytes_per_second and BM_items_per_second by @stanbot8 in #2320
- Add
State::in_timed_section()helper by @nicholasjng in #2319 - fix(mutex): hold lock during notify_all in Barrier::wait to prevent teardown race (fixes #1672) by @jdymitarai in #2325
- Support DoNotOptimize on types with const members (#1997) by @devtejasx in #2291
New Contributors
- @Osama131 made their first contribution in #2114
- @sergio-nsk made their first contribution in #2126
- @5kng made their first contribution in #2135
- @aokblast made their first contribution in #2146
- @ashvardanian made their first contribution in #2144
- @felmonon made their first contribution in #2154
- @gruenich made their first contribution in #2164
- @musicinmybrain made their first contribution in #2175
- @anishesg made their first contribution in #2178
- @qorexdevs made their first contribution in #2177
- @shreejaykurhade made their first contribution in #2180
- @ednolan made their first contribution in #2183
- @jlaportebot made their first contribution in #2187
- @ShawayL made their first contribution in #2191
- @kiwigitops made their first contribution in #2194
- @Haihan-Jiang made their first contribution in #2198
- @charlesmunger made their first contribution in #2214
- @alyssais made their first contribution in #2219
- @Alearner12 made their first contribution in #2237
- @tuna4ll made their first contribution in #2238
- @devtejasx made their first contribution in #2245
- @mwtoews made their first contribution in #2262
- @stanbot8 made their first contribution in #2287
- @jdymitarai made their first contribution in #2297
- @lenamonj made their first contribution in #2294
- @ReturnKartikey made their first contribution in #2304
- @Chaturvediharsh123 made their first contribution in #2313
Full Changelog: v1.9.5...v1.10.0