<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/src/catch2/internal/catch_stringref.hpp, branch v3.5.1</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>Args and TokenStream use StringRefs instead of std::strings</title>
<updated>2023-12-27T15:24:33+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-12-27T15:19:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=5d637d4c6b72dc21e2e198894ba0527729fba535'/>
<id>5d637d4c6b72dc21e2e198894ba0527729fba535</id>
<content type='text'>
Because TokenStream is copied around a lot, moving it to use
`StringRef` removes _a lot_ of allocations per `Opt` in the parser.
Args are not copied around much, but changing them as well makes it
obvious that they do not participate in the ownership.

The changes add up to removing ~180 allocations for "empty"
invocation of the test binary.
(`./tests/ExtraTests/NoTests --allow-running-no-tests -o /dev/null`
is down to 317 allocs)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Because TokenStream is copied around a lot, moving it to use
`StringRef` removes _a lot_ of allocations per `Opt` in the parser.
Args are not copied around much, but changing them as well makes it
obvious that they do not participate in the ownership.

The changes add up to removing ~180 allocations for "empty"
invocation of the test binary.
(`./tests/ExtraTests/NoTests --allow-running-no-tests -o /dev/null`
is down to 317 allocs)
</pre>
</div>
</content>
</entry>
<entry>
<title>Use StringRef for Opt's optNames</title>
<updated>2023-12-26T15:03:22+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-12-26T13:01:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=cd3c7ebe873c3da91ce57c6b2221ba95ee7f93e6'/>
<id>cd3c7ebe873c3da91ce57c6b2221ba95ee7f93e6</id>
<content type='text'>
Removes another ~70 allocations.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Removes another ~70 allocations.
</pre>
</div>
</content>
</entry>
<entry>
<title>Inline StringRef::operator==</title>
<updated>2023-02-20T14:05:09+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-02-19T13:03:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=e1dbad4c9e9e5517c188cbd8af04cb6369851207'/>
<id>e1dbad4c9e9e5517c188cbd8af04cb6369851207</id>
<content type='text'>
This enables its inlining even without LTO, which in turns enables
callers to determine that two StringRefs are unequals with simple
comparison of two numbers, without any function calls.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This enables its inlining even without LTO, which in turns enables
callers to determine that two StringRefs are unequals with simple
comparison of two numbers, without any function calls.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix references to license file</title>
<updated>2022-10-28T09:30:15+00:00</updated>
<author>
<name>Lars Toenning</name>
</author>
<published>2022-10-28T09:22:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=f1084fb30990fe40c8f5b70034970c7eb4e1da72'/>
<id>f1084fb30990fe40c8f5b70034970c7eb4e1da72</id>
<content type='text'>
The license file was renamed with 6a502cc2f5fedd59b3495b58708f0d6d987ed9e1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The license file was renamed with 6a502cc2f5fedd59b3495b58708f0d6d987ed9e1
</pre>
</div>
</content>
</entry>
<entry>
<title>Cleanup StringRef impl a bit</title>
<updated>2021-11-23T22:16:46+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2021-11-20T22:41:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=b9baae6d938133ff2fdc938053e88ccf51dd3afe'/>
<id>b9baae6d938133ff2fdc938053e88ccf51dd3afe</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add StringRef::compare for three way comparison</title>
<updated>2021-09-27T16:41:17+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2021-09-27T16:30:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=21b99d6f589090983136bf764514261dc863ed9a'/>
<id>21b99d6f589090983136bf764514261dc863ed9a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix Wreserved-identifier for UDLs in Catch2</title>
<updated>2021-08-19T17:15:46+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2021-08-19T17:06:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=4113a12c69809d72a3d92345ec47ccc5a0bf141c'/>
<id>4113a12c69809d72a3d92345ec47ccc5a0bf141c</id>
<content type='text'>
See #578
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
See #578
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove StringRef::isNullTerminated and StringRef::c_str</title>
<updated>2021-03-26T20:11:44+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2021-03-25T19:02:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=f1d7a10e06f0f26d02e86c340d93a482b2c50e17'/>
<id>f1d7a10e06f0f26d02e86c340d93a482b2c50e17</id>
<content type='text'>
Both of them were fundamentally unsafe to use and shouldn't be used
at all.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Both of them were fundamentally unsafe to use and shouldn't be used
at all.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add standardized copyright notice + SPDX identifier to source files</title>
<updated>2020-08-30T13:43:45+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-08-30T13:43:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=90aeffb97d6942d16f75a56b11e10fc0b010995a'/>
<id>90aeffb97d6942d16f75a56b11e10fc0b010995a</id>
<content type='text'>
This should also be done for test files, but that has lower priority.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This should also be done for test files, but that has lower priority.
</pre>
</div>
</content>
</entry>
<entry>
<title>Standardize include guard patterns to FILE_NAME_EXTENSION_INCLUDED</title>
<updated>2020-08-30T12:09:27+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-08-29T18:48:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=a822cb9717b64b3b17047fe1ab4dc727c2ff39c4'/>
<id>a822cb9717b64b3b17047fe1ab4dc727c2ff39c4</id>
<content type='text'>
This commit also strips the old copyright comment header in touched
files, as those will also be replaced with a more standardized and
machine-friendly version.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit also strips the old copyright comment header in touched
files, as those will also be replaced with a more standardized and
machine-friendly version.
</pre>
</div>
</content>
</entry>
</feed>
