Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
path: root/docs/release-notes.md
diff options
context:
space:
mode:
authorLeitwolf112026-10-11 10:11:18 +0300
committerLeitwolf112026-10-11 10:11:18 +0300
commite7aa5ff697a27f140136d3643322301c3a811a69 (patch)
tree0fcdeeaa66b2eb69ca1b7e2bff08552be1d531d8 /docs/release-notes.md
parentab1214937f57fb81a56e615a0aef8269ade5da91 (diff)
parentce6fa1996a8e358efdcff53a7628584077d9855c (diff)
downloadcatch3-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.md35
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