<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/src/catch2/internal, branch v3.15.3</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>JSONWriter uses LUT for faster checking if a char needs escaping</title>
<updated>2026-07-23T17:10:14+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-07-23T17:01:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=bb8873ccd710d55a4fa7cc02d710fdb4da69cfb0'/>
<id>bb8873ccd710d55a4fa7cc02d710fdb4da69cfb0</id>
<content type='text'>
This provides nice speedup when writing strings that don't need
escaping, at about 6% in Debug build and ~40% in Release build.
If the strings do need escaping the speedup is much smaller, at
~1% in Debug and ~6% in Release build, as the cost of actually
escaping the strings dwarves the cost of checking.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This provides nice speedup when writing strings that don't need
escaping, at about 6% in Debug build and ~40% in Release build.
If the strings do need escaping the speedup is much smaller, at
~1% in Debug and ~6% in Release build, as the cost of actually
escaping the strings dwarves the cost of checking.
</pre>
</div>
</content>
</entry>
<entry>
<title>Optimize writing of non-string values to JSON</title>
<updated>2026-07-23T12:34:43+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-07-23T12:34:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=46bdf1a04c92e7d34ee24f95d8d8a862498eede7'/>
<id>46bdf1a04c92e7d34ee24f95d8d8a862498eede7</id>
<content type='text'>
In practice, the majority of values the JSON writer handles are
strings, but this makes the code more obvious and can still provide
a small speed-up.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In practice, the majority of values the JSON writer handles are
strings, but this makes the code more obvious and can still provide
a small speed-up.
</pre>
</div>
</content>
</entry>
<entry>
<title>Better support for infs and NaNs in JSON writer</title>
<updated>2026-07-23T12:26:26+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-07-23T12:26:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=c267251e709c52cda421e9490c5cbaf62914fa52'/>
<id>c267251e709c52cda421e9490c5cbaf62914fa52</id>
<content type='text'>
As the types and values sent into the writer are determined by Catch2,
I do not expect to actually need this support, but it is better to have
it and not be surprised in the future.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As the types and values sent into the writer are determined by Catch2,
I do not expect to actually need this support, but it is better to have
it and not be surprised in the future.
</pre>
</div>
</content>
</entry>
<entry>
<title>Make JSONWriter's number handling locale-independent</title>
<updated>2026-07-22T22:10:28+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-07-22T22:10:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=0cc833ea95bb7136c99be1b5b105780cae5766ff'/>
<id>0cc833ea95bb7136c99be1b5b105780cae5766ff</id>
<content type='text'>
Closes #3176
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #3176
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix --warn InfiniteGenerators firing even if the generator was filtered</title>
<updated>2026-07-07T12:09:11+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-07-07T12:09:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=dd94b9a780e66651ff686083a66722386c540228'/>
<id>dd94b9a780e66651ff686083a66722386c540228</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: move struct TestName of INTERNAL_CATCH_TEMPLATE_PRODUCT_TEST_CASE_METHOD_2 into the anonymous namespace</title>
<updated>2026-06-09T17:17:14+00:00</updated>
<author>
<name>Dominic Koepke</name>
</author>
<published>2026-06-08T07:22:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=b7e0310fbe42d209630b262a1c76733a04e90e13'/>
<id>b7e0310fbe42d209630b262a1c76733a04e90e13</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: move struct TestName of INTERNAL_CATCH_TEMPLATE_LIST_TEST_CASE_METHOD_2 into the anonymous namespace</title>
<updated>2026-06-09T17:17:14+00:00</updated>
<author>
<name>Dominic Koepke</name>
</author>
<published>2026-06-08T07:21:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=6d4ea62200151ee50b795bf11a75f3eca53861c8'/>
<id>6d4ea62200151ee50b795bf11a75f3eca53861c8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid a potential underflow when iterating over invalid inputs</title>
<updated>2026-05-14T08:58:09+00:00</updated>
<author>
<name>Dirk Müller</name>
</author>
<published>2026-05-07T07:39:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=69e0473f6e98d47c93518424c08ee69ee632c0f0'/>
<id>69e0473f6e98d47c93518424c08ee69ee632c0f0</id>
<content type='text'>
The forward iteration logic already bounds-check for m_it != m_string-&gt;end(),
do the same for the backward iteration. The issue with the assert is
that the assert() might not be compiled in, and it is happening after
the dereference, so it was too late.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The forward iteration logic already bounds-check for m_it != m_string-&gt;end(),
do the same for the backward iteration. The issue with the assert is
that the assert() might not be compiled in, and it is happening after
the dereference, so it was too late.
</pre>
</div>
</content>
</entry>
<entry>
<title>Support for constexpr matchers in C++20 (P0784)</title>
<updated>2026-05-12T09:05:02+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-05-10T21:05:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=651247c7f40eda6846fec736d2f9edac8949dacb'/>
<id>651247c7f40eda6846fec736d2f9edac8949dacb</id>
<content type='text'>
To make this all work, I had to remove the stringification cache
from matchers. In theory, this can cause performance penalty in
cases where single matcher instance is stringified multiple times,
but in practice this does not happen much, and the difference is
surprisingly small anyway, because the performance of stringification
is already horrible and full of allocating strings just to throw
them away.

The matcher combinators need P2738 from C++26 to be `constexpr`.

Closes #3091
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To make this all work, I had to remove the stringification cache
from matchers. In theory, this can cause performance penalty in
cases where single matcher instance is stringified multiple times,
but in practice this does not happen much, and the difference is
surprisingly small anyway, because the performance of stringification
is already horrible and full of allocating strings just to throw
them away.

The matcher combinators need P2738 from C++26 to be `constexpr`.

Closes #3091
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't check if __cplusplus is defined</title>
<updated>2026-05-10T18:48:58+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-05-10T18:48:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=15b9393f0f32327e28833c5032b2c4e02c31d82c'/>
<id>15b9393f0f32327e28833c5032b2c4e02c31d82c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
