<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3, 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>v3.10.0</title>
<updated>2025-08-25T19:30:21+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2025-08-25T19:27:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=25319fd3047c6bdcf3c0170e76fa526c77f99ca9'/>
<id>25319fd3047c6bdcf3c0170e76fa526c77f99ca9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Forbid deducing reference types for m_predicate in FilterGenerator (#3005)</title>
<updated>2025-08-23T19:55:38+00:00</updated>
<author>
<name>Szapi</name>
</author>
<published>2025-08-23T19:55:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=85c4bad86b0bd29b6d2f5aa270401c0a642d53b1'/>
<id>85c4bad86b0bd29b6d2f5aa270401c0a642d53b1</id>
<content type='text'>
Forbid deducing reference types for m_predicate in FilterGenerator to prevent dangling references.
This is needed for out-of-line predicates to work correctly instead of undefined behavior or crashes.

---------

Co-authored-by: Tek Mate &lt;mate.tek@evosoft.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Forbid deducing reference types for m_predicate in FilterGenerator to prevent dangling references.
This is needed for out-of-line predicates to work correctly instead of undefined behavior or crashes.

---------

Co-authored-by: Tek Mate &lt;mate.tek@evosoft.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Make message macros (FAIL, WARN, INFO, etc) thread safe</title>
<updated>2025-08-23T09:08:18+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2025-08-22T22:15:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=582200a1f8ddd6f435d1264668c7074121c2636c'/>
<id>582200a1f8ddd6f435d1264668c7074121c2636c</id>
<content type='text'>
This builds on the existing work to make assertion thread safe,
by adding an extra synchronization point in the holder of
`ReusableStringStream`'s stream instances, as those are used to
build the messages, and finishing the move of message scope holders
to be thread-local.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This builds on the existing work to make assertion thread safe,
by adding an extra synchronization point in the holder of
`ReusableStringStream`'s stream instances, as those are used to
build the messages, and finishing the move of message scope holders
to be thread-local.
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve performance of writing XML</title>
<updated>2025-08-22T15:03:35+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2025-08-22T15:03:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=f4e05a67bb5a57ee6e051fc8c391b32cbf927f7d'/>
<id>f4e05a67bb5a57ee6e051fc8c391b32cbf927f7d</id>
<content type='text'>
As with the JSON writer, the old code was made to be simple and
for each char just decided whether it needs escaping, or should be
written as-is. The new code instead looks for characters that need
escaping and batches writes of characters that do not.

This provides 4-8x speedup (length dependent) for writing strings
that do not need escaping, and keeps roughly the same performance
for those that do need escaping.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As with the JSON writer, the old code was made to be simple and
for each char just decided whether it needs escaping, or should be
written as-is. The new code instead looks for characters that need
escaping and batches writes of characters that do not.

This provides 4-8x speedup (length dependent) for writing strings
that do not need escaping, and keeps roughly the same performance
for those that do need escaping.
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve performance of writing JSON values</title>
<updated>2025-08-22T15:00:40+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2025-08-21T21:36:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=fb2e4fbe413824a5cad4101c0e94cb10b7828f0d'/>
<id>fb2e4fbe413824a5cad4101c0e94cb10b7828f0d</id>
<content type='text'>
The old code was exceedingly simple, as it went char-by-char and
decided whether to write it to the output stream as-is, or escaped.
This caused a _lot_ of stream writes of individual characters.

The new code instead looks for characters that need escaping, and
bulk-writes the non-escaped characters in between them. This leads
to about the same performance for strings that comprise of only
escaped characters, and 3-10x improvement for strings without any
escaping needed.

In practice, we should expect the former rather than the latter,
but this is still nice improvement.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The old code was exceedingly simple, as it went char-by-char and
decided whether to write it to the output stream as-is, or escaped.
This caused a _lot_ of stream writes of individual characters.

The new code instead looks for characters that need escaping, and
bulk-writes the non-escaped characters in between them. This leads
to about the same performance for strings that comprise of only
escaped characters, and 3-10x improvement for strings without any
escaping needed.

In practice, we should expect the former rather than the latter,
but this is still nice improvement.
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't add / to start of pkg-config file path when DESTDIR is unset</title>
<updated>2025-08-21T18:58:55+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2025-08-21T18:55:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=78a9518a2847f82cb65124d65eaf0b0be8d90cdc'/>
<id>78a9518a2847f82cb65124d65eaf0b0be8d90cdc</id>
<content type='text'>
This broke installation on Windows, because the suddenly started
with a '/' instead of a drive letter.

Closes #3019
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This broke installation on Windows, because the suddenly started
with a '/' instead of a drive letter.

Closes #3019
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix color mode detection on FreeBSD by adding platform macro</title>
<updated>2025-08-12T12:38:50+00:00</updated>
<author>
<name>Shloka Jain</name>
</author>
<published>2025-08-10T11:22:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=3e82ef9317d4bb43d81b660404db3c3c5880aa7d'/>
<id>3e82ef9317d4bb43d81b660404db3c3c5880aa7d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Handle DESTDIR env var when generating pkgconfig files</title>
<updated>2025-08-09T21:05:18+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2025-08-09T21:05:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=7cad6d75390668ad2b6bec8432a2e408a992e1bf'/>
<id>7cad6d75390668ad2b6bec8432a2e408a992e1bf</id>
<content type='text'>
Having the ability to configure the installation path at config
time, and the ability to change the prefix at install time is not
enough, apparently people also use env var to redirect them instead.

Closes #3006
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Having the ability to configure the installation path at config
time, and the ability to change the prefix at install time is not
enough, apparently people also use env var to redirect them instead.

Closes #3006
</pre>
</div>
</content>
</entry>
<entry>
<title>v3.9.1</title>
<updated>2025-08-08T22:30:23+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2025-08-08T22:30:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=644821ce28cb25d7992a4d0375b1d83214392592'/>
<id>644821ce28cb25d7992a4d0375b1d83214392592</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add tests for comparing &amp; stringifying volatile pointers</title>
<updated>2025-08-07T22:02:33+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2025-08-07T22:02:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=03c62cdf2ede08ee759008637adf5d8e5581b77b'/>
<id>03c62cdf2ede08ee759008637adf5d8e5581b77b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
