Skip to content

Commit 62f6171

Browse files
committed
Merge branch 'master' into await_transform-vs-as_awaitable
2 parents 97d8178 + d4c58c1 commit 62f6171

24 files changed

+273
-32
lines changed

src/set_status.cpp

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include <string>
1616
#include <chrono>
1717
#include <format>
18+
#include <cstring>
1819

1920
#include <filesystem>
2021
namespace fs = std::filesystem;
@@ -107,6 +108,35 @@ int main(int argc, char const * argv[]) {
107108
throw bad_issue_file{filename, "Corrupt status attribute"};
108109
}
109110
auto old_status = issue_data.substr(k, l-k);
111+
112+
// Do not allow an IS status for TS issues, and vice versa.
113+
if (new_status.starts_with("C++") or new_status == "TS")
114+
{
115+
auto t1 = issue_data.find("<title>", l);
116+
auto t2 = issue_data.find("</title>", l);
117+
if (t1 == std::string::npos or t2 == std::string::npos or t2 < t1)
118+
throw bad_issue_file{filename, "Cannot find <title> element"};
119+
t1 += std::strlen("<title>");
120+
std::string_view title(issue_data);
121+
title = title.substr(t1, t2 - t1);
122+
bool is_ts_issue = false;
123+
if (title.starts_with('['))
124+
{
125+
auto end = title.find(']');
126+
if (end != title.npos)
127+
{
128+
auto tag = title.substr(0, end);
129+
#ifdef __cpp_lib_string_contains
130+
is_ts_issue = tag.contains(".ts");
131+
#else
132+
is_ts_issue = tag.find(".ts") != tag.npos;
133+
#endif
134+
}
135+
}
136+
if (is_ts_issue != (new_status == "TS"))
137+
throw std::runtime_error{std::format("Refusing to set status \"{}\" for issue in {}:\n\t{}: {}", new_status, is_ts_issue ? "a TS" : "the IS", issue_number, title)};
138+
}
139+
110140
issue_data.replace(k, l-k, new_status);
111141

112142
if (lwg::filename_for_status(new_status) != lwg::filename_for_status(old_status)) {

xml/issue2414.xml

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
22
<!DOCTYPE issue SYSTEM "lwg-issue.dtd">
33

4-
<issue num="2414" status="Open">
4+
<issue num="2414" status="Ready">
55
<title>Member function reentrancy should be implementation-defined</title>
66
<section><sref ref="[reentrancy]"/></section>
77
<submitter>Stephan T. Lavavej</submitter>
@@ -79,9 +79,7 @@ char *last = (char*)(&amp;s + 1);
7979
s.append(first, last);
8080
</pre>
8181
</blockquote>
82-
</discussion>
83-
84-
<resolution>
82+
<superseded>
8583
<p>This wording is relative to <paper num="N4892"/>.</p>
8684

8785
<ol>
@@ -97,6 +95,32 @@ the behavior is undefined unless otherwise specified.</ins>
9795
</blockquote>
9896
</li>
9997
</ol>
98+
</superseded>
99+
100+
<note>2026-02-20; Tim provides new wording</note>
101+
<p>Refer to "object parameter" not "`this` pointer".</p>
102+
103+
104+
<note>2026-02-20; LWG telecon; Status changed: Open &rarr; Ready.</note>
105+
</discussion>
106+
107+
<resolution>
108+
<p>This wording is relative to <paper num="N5032"/>.</p>
109+
110+
<ol>
111+
<li><p>Append the following paragraph to <sref ref="[reentrancy]"/>:</p>
112+
<blockquote>
113+
<p>
114+
<ins>-?- During the execution of a standard library non-static member function <i>F</i> on an object,
115+
if that object is accessed through a glvalue that is not obtained, directly or indirectly, from
116+
the object parameter of <i>F</i>, in a manner that can conflict (<sref ref="[intro.races]"/>)
117+
with any access that <i>F</i> is permitted to perform (<sref ref="[res.on.data.races]"/>),
118+
the behavior is undefined unless otherwise specified.</ins>
119+
</p>
120+
</blockquote>
121+
</li>
122+
</ol>
123+
100124
</resolution>
101125

102126
</issue>

xml/issue2697.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version='1.0' encoding='utf-8' standalone='no'?>
22
<!DOCTYPE issue SYSTEM "lwg-issue.dtd">
33

4-
<issue num="2697" status="C++23">
4+
<issue num="2697" status="WP">
55
<title>[concurr.ts] Behavior of <tt>future/shared_future</tt> unwrapping constructor when given an invalid <tt>future</tt></title>
66
<section><sref ref="[futures.unique_future]"/><sref ref="[futures.shared_future]"/></section>
77
<submitter>Tim Song</submitter>

xml/issue2779.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version='1.0' encoding='utf-8' standalone='no'?>
22
<!DOCTYPE issue SYSTEM "lwg-issue.dtd">
33

4-
<issue num="2779" status="C++23">
4+
<issue num="2779" status="WP">
55
<title>[networking.ts] Relax requirements on buffer sequence iterators</title>
66
<section><sref ref="[buffer.reqmts.mutablebuffersequence]"/></section>
77
<submitter>Vinnie Falco</submitter>

xml/issue2960.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version='1.0' encoding='utf-8' standalone='no'?>
22
<!DOCTYPE issue SYSTEM "lwg-issue.dtd">
33

4-
<issue num="2960" status="C++23">
4+
<issue num="2960" status="WP">
55
<title>[fund.ts.v3] <tt>nonesuch</tt> is insufficiently useless</title>
66
<section><sref ref="[meta]"/></section>
77
<submitter>Tim Song</submitter>

xml/issue3002.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version='1.0' encoding='utf-8' standalone='no'?>
22
<!DOCTYPE issue SYSTEM "lwg-issue.dtd">
33

4-
<issue num="3002" status="C++23">
4+
<issue num="3002" status="WP">
55
<title>[networking.ts] <tt>basic_socket_acceptor::is_open()</tt> isn't <tt>noexcept</tt></title>
66
<section><sref ref="[socket.acceptor.ops]"/></section>
77
<submitter>Jonathan Wakely</submitter>

xml/issue3010.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version='1.0' encoding='utf-8' standalone='no'?>
22
<!DOCTYPE issue SYSTEM "lwg-issue.dtd">
33

4-
<issue num="3010" status="C++23">
4+
<issue num="3010" status="WP">
55
<title>[networking.ts] <tt>uses_executor</tt> says "if a type <tt>T::executor_type</tt> exists"</title>
66
<section><sref ref="[async.uses.executor.trait]"/></section>
77
<submitter>Jonathan Wakely</submitter>

xml/issue3020.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version='1.0' encoding='utf-8' standalone='no'?>
22
<!DOCTYPE issue SYSTEM "lwg-issue.dtd">
33

4-
<issue num="3020" status="C++23">
4+
<issue num="3020" status="WP">
55
<title>[networking.ts] Remove spurious nested <tt>value_type</tt> buffer sequence requirement</title>
66
<section><sref ref="[buffer.reqmts]"/></section>
77
<submitter>Vinnie Falco</submitter>

xml/issue3071.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version='1.0' encoding='utf-8' standalone='no'?>
22
<!DOCTYPE issue SYSTEM "lwg-issue.dtd">
33

4-
<issue num="3071" status="C++23">
4+
<issue num="3071" status="WP">
55
<title>[networking.ts] <tt>read_until</tt> still refers to "input sequence"</title>
66
<section><sref ref="[buffer.read.until]"/></section>
77
<submitter>Christopher Kohlhoff</submitter>

xml/issue3136.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version='1.0' encoding='utf-8' standalone='no'?>
22
<!DOCTYPE issue SYSTEM "lwg-issue.dtd">
33

4-
<issue num="3136" status="C++23">
4+
<issue num="3136" status="WP">
55
<title>[fund.ts.v3] LFTSv3 awkward wording in <tt>propagate_const</tt> requirements</title>
66
<section><sref ref="[propagate_const.class_type_requirements]"/></section>
77
<submitter>Thomas K&ouml;ppe</submitter>

0 commit comments

Comments
 (0)