diff options
| author | Leitwolf11 | 2026-10-11 10:11:18 +0300 |
|---|---|---|
| committer | Leitwolf11 | 2026-10-11 10:11:18 +0300 |
| commit | e7aa5ff697a27f140136d3643322301c3a811a69 (patch) | |
| tree | 0fcdeeaa66b2eb69ca1b7e2bff08552be1d531d8 /docs/release-notes.md | |
| parent | ab1214937f57fb81a56e615a0aef8269ade5da91 (diff) | |
| parent | ce6fa1996a8e358efdcff53a7628584077d9855c (diff) | |
| download | catch3-e7aa5ff697a27f140136d3643322301c3a811a69.tar.gz | |
Merge devel into the platforms branch
devel gained the Catch2 3.16.1 backport, which dropped the retired
macos-14 runner from the same line this branch changes. The macOS
builds run on macos-15 and macos-26, as this branch has them. The
upstream status names the platforms that are now the gate.
Diffstat (limited to 'docs/release-notes.md')
| -rw-r--r-- | docs/release-notes.md | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/docs/release-notes.md b/docs/release-notes.md index 3a2c7734..2ba3b663 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -5,6 +5,7 @@ # Release notes **Contents**<br> +[3.16.1](#3161)<br> [3.16.0](#3160)<br> [3.15.3](#3153)<br> [3.15.2](#3152)<br> @@ -82,6 +83,40 @@ [Even Older versions](#even-older-versions)<br> +## 3.16.1 + +### Fixes +* Fixed optimizations being disabled after including benchmarking headers under MSVC. (#3212) + * This was introduced in 3.16.0's fix for the deopt implementation for MSVC never being used. +* Fixed Console reporter replacing `\0xFF`s in user-provided strings. +* Added missing `<cassert>` include to `catch_generators_range.hpp`. (#3205) + +### Improvements +* Workaround for GCC's quadratic scaling for release builds with number of test cases. + * In practice the improvement is only noticeable with unity builds and/or template product tests. +* Changed how decomposer operators are defined for better compilation times. + * For Catch2's `SelfTest` binary, this provides ~2% build time improvement. +* Changed how decomposer handles stringification for smaller binary sizes. + * For the `SelfTest` binary this is about ~8%. +* Improved compilation costs of multiple assertions in one test cases for release builds. +* Optimized initial test registration at process start: + * Fewer allocations for test cases with many tags. + * Faster processing for test cases with <=2 tags. + * Faster tag validation. + * Faster checking for duplicated test cases. +* Optimized test selection and filtering: +* Optimized filtering tests by test name. + * Running `SelfTest` with `abc*` as the filter pattern is ~10% faster. + +### Miscellaneous +* `catch_discover_tests` registers individual tests with `--order decl` for faster startup. + * For `SelfTest`, this provides 20% improvement in Debug and 5% in Release builds. +* `CMakeConfig::` family of tests use the main build's toolchain file. (#3202) +* Deprecated throwing exceptions from the reporter interface functions. + * Previously, throwing from e.g. `assertionEnded` might, or might not, have worked depending on which assertion has ended. As it is not practical for Catch2 to guard against the reporters failing randomly, and marking so with `noexcept` can provide compilation throughput improvements, I decided to fully forbid it. + * Reporter constructors are allowed to throw and the test binary will report the error nicely before exiting. + * Due to C++ limitations, this deprecation cannot be marked inside the code, only in docs. + ## 3.16.0 |