<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/src/catch2/meson.build, branch v3.10.0</title>
<subtitle>Progmasoft Catch3: an independently maintained C++17 test framework with a parallel runner, property checks, snapshots and structured results.</subtitle>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/'/>
<entry>
<title>Add configuration option to make assertions thread-safe</title>
<updated>2025-07-24T08:10:00+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2025-07-17T20:58:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=2a8a8a7210513fc2f6ae5e65986c0f2d730c1537'/>
<id>2a8a8a7210513fc2f6ae5e65986c0f2d730c1537</id>
<content type='text'>
All the previous refactoring to make the assertion fast paths
smaller and faster also allows us to implement the fast paths
just with thread-local and atomic variables, without full mutexes.

However, the performance overhead of thread-safe assertions is
still significant for single threaded usage:

|  slowdown |  Debug  | Release |
|-----------|--------:|--------:|
| fast path |   1.04x |   1.43x |
| slow path |   1.16x |   1.22x |

Thus, we don't make the assertions thread-safe by default, and instead
provide a build-time configuration option that the users can set to get
thread-safe assertions.

This commit is functional, but it still needs some follow-up work:
 * We do not need full seq_cst increments for the atomic counters,
   and using weaker ones can be faster.
 * We brute-force updating the reporter-friendly totals from internal
   atomic counters by doing it everywhere. We should properly trace
   where this is needed instead.
 * Message macros (`INFO`, `UNSCOPED_INFO`, `CAPTURE`, etc) are not
   made thread safe in this commit, but they can be made thread safe
   in the future, by building on top of this work.
 * Add more tests, including with thread-sanitizer, and compiled
   examples to the repository. Right now, these changes have been
   compiled with tsan manually, but these tests are not added to CI.

Closes #2948
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
All the previous refactoring to make the assertion fast paths
smaller and faster also allows us to implement the fast paths
just with thread-local and atomic variables, without full mutexes.

However, the performance overhead of thread-safe assertions is
still significant for single threaded usage:

|  slowdown |  Debug  | Release |
|-----------|--------:|--------:|
| fast path |   1.04x |   1.43x |
| slow path |   1.16x |   1.22x |

Thus, we don't make the assertions thread-safe by default, and instead
provide a build-time configuration option that the users can set to get
thread-safe assertions.

This commit is functional, but it still needs some follow-up work:
 * We do not need full seq_cst increments for the atomic counters,
   and using weaker ones can be faster.
 * We brute-force updating the reporter-friendly totals from internal
   atomic counters by doing it everywhere. We should properly trace
   where this is needed instead.
 * Message macros (`INFO`, `UNSCOPED_INFO`, `CAPTURE`, etc) are not
   made thread safe in this commit, but they can be made thread safe
   in the future, by building on top of this work.
 * Add more tests, including with thread-sanitizer, and compiled
   examples to the repository. Right now, these changes have been
   compiled with tsan manually, but these tests are not added to CI.

Closes #2948
</pre>
</div>
</content>
</entry>
<entry>
<title>Skeleton for applying deprecation warnings</title>
<updated>2025-07-21T19:50:43+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2025-07-20T19:40:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=8c3ffe05e1293e64c8d10bcd68092fe9de9673ff'/>
<id>8c3ffe05e1293e64c8d10bcd68092fe9de9673ff</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Mark code past FAIL and SKIP as unreachable</title>
<updated>2025-07-14T08:39:48+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2024-12-27T22:46:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=6097bd6ee910f4ebb6216e0d1817fb84a51a7efb'/>
<id>6097bd6ee910f4ebb6216e0d1817fb84a51a7efb</id>
<content type='text'>
This helps the compiler see that the execution does not continue,
which in turn means that it is not an error if the user does not
return value from the function after FAIL/SKIP.

Closes #2941
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This helps the compiler see that the execution does not continue,
which in turn means that it is not an error if the user does not
return value from the function after FAIL/SKIP.

Closes #2941
</pre>
</div>
</content>
</entry>
<entry>
<title>Move header from internal</title>
<updated>2025-07-07T15:27:48+00:00</updated>
<author>
<name>Omar Boukli-Hacene</name>
</author>
<published>2025-04-13T14:44:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=8dc9f1a1247a15836044501c9a791ea67a709f05'/>
<id>8dc9f1a1247a15836044501c9a791ea67a709f05</id>
<content type='text'>
Move `catch_test_run_info.hpp` from directory
`src/catch2/internal/` to be directly under `src/catch2/`.

Header `catch_test_run_info.hpp` defines `Catch::TestRunInfo` which is part of the public API, since it is required when overriding `Catch::EventListenerBase`.

Fixes issue caught by Clang Tidy misc-include-cleaner check.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move `catch_test_run_info.hpp` from directory
`src/catch2/internal/` to be directly under `src/catch2/`.

Header `catch_test_run_info.hpp` defines `Catch::TestRunInfo` which is part of the public API, since it is required when overriding `Catch::EventListenerBase`.

Fixes issue caught by Clang Tidy misc-include-cleaner check.
</pre>
</div>
</content>
</entry>
<entry>
<title>add meson option to not install library</title>
<updated>2025-01-05T19:10:45+00:00</updated>
<author>
<name>Michal Bukovský</name>
</author>
<published>2024-11-30T19:17:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=6e9c34aa2015c3dca102451b00b7e0f5af273d9c'/>
<id>6e9c34aa2015c3dca102451b00b7e0f5af273d9c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Sprinkle some constexpr around to make Jason happy</title>
<updated>2024-09-13T14:40:11+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2024-09-13T09:16:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=18df97df00848e91bfe1b63408bba19f8b8237ae'/>
<id>18df97df00848e91bfe1b63408bba19f8b8237ae</id>
<content type='text'>
Most of these will not matter in practice due to C++14 imposing
significant limitations on what else we can make constexpr, and we cannot
have references outliving the constexpr context either way.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Most of these will not matter in practice due to C++14 imposing
significant limitations on what else we can make constexpr, and we cannot
have references outliving the constexpr context either way.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add the catch_config_prefix_messages.hpp to builds</title>
<updated>2024-09-13T14:39:49+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2024-09-13T12:25:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=bd70515c0831bb741eb1865e9ed31d321417d735'/>
<id>bd70515c0831bb741eb1865e9ed31d321417d735</id>
<content type='text'>
Closes #2903
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #2903
</pre>
</div>
</content>
</entry>
<entry>
<title>Move header from internal</title>
<updated>2024-08-13T17:51:00+00:00</updated>
<author>
<name>Omar Boukli-Hacene</name>
</author>
<published>2024-04-25T20:10:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=9721048a32e245aae0e8ec6799302577a5c751e4'/>
<id>9721048a32e245aae0e8ec6799302577a5c751e4</id>
<content type='text'>
Move `catch_case_sensitive.hpp` from directory
`src/catch2/internal/internal` to be directly under `src/catch2/`.

Header `catch_case_sensitive.hpp` defines `enum CaseSensitive` which is
part of the public API, since it is exposed by the string matcher
contracts.

Fixes issue caught by Clang Tidy misc-include-cleaner check.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move `catch_case_sensitive.hpp` from directory
`src/catch2/internal/internal` to be directly under `src/catch2/`.

Header `catch_case_sensitive.hpp` defines `enum CaseSensitive` which is
part of the public API, since it is exposed by the string matcher
contracts.

Fixes issue caught by Clang Tidy misc-include-cleaner check.
</pre>
</div>
</content>
</entry>
<entry>
<title>Handle linking to liblog when [cross] building for Android using meson. (#2784)</title>
<updated>2023-12-28T22:40:42+00:00</updated>
<author>
<name>影月 零</name>
</author>
<published>2023-12-28T22:40:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=c8262e1f40c8308a47ff22ad92286f4c3c54425d'/>
<id>c8262e1f40c8308a47ff22ad92286f4c3c54425d</id>
<content type='text'>
* Alter meson for Android cross builds.

* Handle liblog linking on Termux as well as the Android NDK.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Alter meson for Android cross builds.

* Handle liblog linking on Termux as well as the Android NDK.</pre>
</div>
</content>
</entry>
<entry>
<title>Add uniform_integer_distribution</title>
<updated>2023-12-10T18:53:39+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-12-08T21:01:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=ed9d672b5ced5647d8420f3b4d040199a3281a2b'/>
<id>ed9d672b5ced5647d8420f3b4d040199a3281a2b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
