Skip to content

Commit 39cffdb

Browse files
Merge pull request #57 from jaredhoberock/flatten-n4706-diffs
Flatten n4706 diffs
2 parents c235521 + 9385a6d commit 39cffdb

File tree

5 files changed

+29
-25
lines changed

5 files changed

+29
-25
lines changed

README.md

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,25 @@
1-
Document Number: N4726
2-
Date: 2018-02-12
1+
Document Number: NXXXX+1
2+
Date: 2018-04-02
33
Revises:
44
Project: Programming Language C++
55
Project Number: TS 19570
66
Reply-to: Jared Hoberock
77
NVIDIA Corporation
88
99

10-
# Parallelism TS Editor's Report, pre-Jacksonville mailing
10+
# Parallelism TS Editor's Report, post-Jacksonville mailing
1111

12-
N4725 is the proposed working draft of Parallelism TS Version 2. It contains editorial changes to the Parallelism TS.
12+
NXXXX is the proposed working draft of Parallelism TS Version 2. It contains normative changes as directed by the ISO C++ Standards Committee at the 2018 Jacksonville meeting and editorial changes to the Parallelism TS.
1313

14-
N4725 updates the previous draft, N4706, published in the post-Toronto mailing.
14+
NXXXX updates the previous draft, N4725, published in the pre-Jacksonville mailing.
15+
16+
NYYYY is document NXXXX reformatted as a PDTS draft document.
17+
18+
## Normative Changes
19+
20+
* Apply the proposed wording in [P0214R9](https://wg21.link/P0214R9) (Data-Parallel Vector Types & Operations).
1521

1622
# Acknowledgements
1723

18-
Thanks to Pablo Halpern and Matthias Kretz for suggesting editorial changes.
24+
Thanks to Alisdair Meredith for suggesting editorial changes.
1925

algorithms.html

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ <h1>Wavefront Application</h1>
8383
<p>
8484
Let <i>f</i> be a function called for each argument list in a sequence of argument lists.
8585
<i>Wavefront application</i> of <i>f</i> requires that evaluation A<sub>i</sub> be sequenced
86-
before evaluation B<sub><ins>j</ins><del>i</del></sub> if i &lt; j and and:
86+
before evaluation B<sub>j</sub> if i &lt; j and:
8787

8888
<ul>
8989
<li>A<sub>i</sub> is sequenced before some evaluation B<sub>i</sub> and B<sub>i</sub> is horizontally matched with B<sub>j</sub>, or</li>
@@ -111,7 +111,6 @@ <h1>Header <code>&lt;experimental/algorithm&gt;</code> synopsis</h1>
111111

112112
namespace std::experimental {
113113
inline namespace parallelism_v2 {
114-
115114
namespace execution {
116115
<cxx-ref insynopsis="" to="parallel.alg.novec"></cxx-ref>
117116
template&lt;class F&gt;
@@ -238,7 +237,7 @@ <h1>Reductions</h1>
238237
<cxx-signature>template&lt;class T&gt;
239238
<em>unspecified</em> reduction_max(T&amp; var);</cxx-signature>
240239

241-
<cxx-requires>T shall meet the requirements of <code>CopyConstructible</code> and <code>MoveAssignable</code>.></cxx-requires>
240+
<cxx-requires>T shall meet the requirements of <code>CopyConstructible</code> and <code>MoveAssignable</code>.</cxx-requires>
242241

243242
<cxx-returns>a reduction object of unspecified type having reduction value type <code>T</code>, reduction identity and combiner operation as specified in table <cxx-ref to="reduction-identities-and-combiner-operations"></cxx-ref> and using the object referenced by <code>var</code> as its live-out object.</cxx-returns>
244243

@@ -288,7 +287,7 @@ <h1>Reductions</h1>
288287
</thead>
289288
</table>
290289

291-
<cxx-example>The following code updates each element of <code>y</code> and sets <code>s</code> <ins>to</ins><del>ot</del> the sum of the squares.
290+
<cxx-example>The following code updates each element of <code>y</code> and sets <code>s</code> to the sum of the squares.
292291
<pre>
293292
extern int n;
294293
extern float x[], y[], a;
@@ -302,7 +301,6 @@ <h1>Reductions</h1>
302301
);
303302
</pre>
304303
</cxx-example>
305-
</ins>
306304
</cxx-function>
307305
</cxx-section>
308306

@@ -333,7 +331,7 @@ <h1>Inductions</h1>
333331
<em>unspecified</em> induction(T&amp;&amp; var, S stride);</cxx-signature>
334332

335333
<cxx-returns>
336-
an induction object with induction value type <code>remove_cv_t<ins>&lt;</ins><del>&gt;</del>remove_reference_t<ins>&lt;</ins><del>&gt;</del>T<ins>&gt;&gt;</ins><del>&lt;&lt;</del></code>,
334+
an induction object with induction value type <code>remove_cv_t&lt;remove_reference_t&lt;T&gt;&gt;</code>,
337335
initial value <code>var</code>, and (if specified) stride <code>stride</code>. If <code>T</code> is an lvalue reference
338336
to non-<code>const</code> type, then the object referenced by <code>var</code> becomes the live-out object for the
339337
induction object; otherwise there is no live-out object.
@@ -425,13 +423,13 @@ <h1>For loop</h1>
425423
The first element in the input sequence is <code>start</code>. Each subsequent element is generated by adding
426424
<code>stride</code> to the previous element, if <code>stride</code> is specified, otherwise by incrementing
427425
the previous element. <cxx-note>As described in the C++ standard, section [algorithms.general], arithmetic
428-
on non-random-access iterators is performed using <ins><code>advance</code></ins><del>advance</del> and <ins><code>distance</code></ins><del>distance</del>.</cxx-note> <cxx-note>The order of the
426+
on non-random-access iterators is performed using <code>advance</code> and <code>distance</code>.</cxx-note> <cxx-note>The order of the
429427
elements of the input sequence is important for determining ordinal position of an application of <em>f</em>,
430428
even though the applications themselves may be unordered.</cxx-note></p>
431429

432430
The first argument to <em>f</em> is an element from the input sequence. <cxx-note>if <code>I</code> is an
433431
iterator type, the iterators in the input sequence are not dereferenced before
434-
being passed to <em>f</em>.</cxx-note> For each member of the <ins><code>rest</code></ins><del>rest</del> parameter pack
432+
being passed to <em>f</em>.</cxx-note> For each member of the <code>rest</code> parameter pack
435433
excluding <em>f</em>, an additional argument is passed to each application of <em>f</em> as follows:
436434

437435
<ul>
@@ -478,7 +476,7 @@ <h1>No vec</h1>
478476
<cxx-returns>
479477
the result of <code>f</code>.
480478
</cxx-returns>
481-
479+
482480
<cxx-notes>
483481
If <code>f</code> exits via an exception, then <code>terminate</code> will be called, consistent
484482
with all other potentially-throwing operations invoked with <code>vector_policy</code> execution.

execution_policies.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ <h1>Header <code>&lt;experimental/execution&gt;</code> synopsis</h1>
1818

1919
<cxx-ref insynopsis="" to="parallel.execpol.objects"></cxx-ref>
2020
inline constexpr unsequenced_policy unseq{ <i>unspecified</i> };
21-
inline constexpr <ins>vector_policy vec</ins><del>parallel_policy par</del>{ <i>unspecified</i> };
21+
inline constexpr vector_policy vec{ <i>unspecified</i> };
2222
}
2323
}
2424
}
@@ -39,7 +39,7 @@ <h1>Unsequenced execution policy</h1>
3939

4040
<p><cxx-note>This overrides the usual guarantee from the C++ Standard, <cxx-ref in="cxx" to="intro.execution"></cxx-ref> [intro.execution] that function executions do not overlap with one another.</cxx-note></p>
4141

42-
<p>During the execution of a parallel algorithm with the <code>experimental::execution::unsequenced_policy</code> policy, if the invocation of an element access function exits via an uncaught exception, <code>terminate()</code> <ins>will</ins><del>shall</del> be called.</p>
42+
<p>During the execution of a parallel algorithm with the <code>experimental::execution::unsequenced_policy</code> policy, if the invocation of an element access function exits via an uncaught exception, <code>terminate()</code> will be called.</p>
4343

4444
</cxx-section>
4545

@@ -52,18 +52,18 @@ <h1>Vector execution policy</h1>
5252

5353
<p>The class <code>vector_policy</code> is an execution policy type used as a unique type to disambiguate parallel algorithm overloading and indicate that a parallel algorithm's execution may be vectorized. Additionally, such vectorization will result in an execution that respects the sequencing constraints of wavefront application ([parallel.alg.general.wavefront]). <cxx-note>The implementation thus makes stronger guarantees than for <code>unsequenced_policy</code>, for example.</cxx-note></p>
5454

55-
<p>The invocations of element access functions in parallel algorithms invoked with an execution policy of type <code>vector_policy</code> are permitted to execute in unordered fashion in the calling thread, unsequenced with respect to one another within the calling thread, subject to the sequencing constraints of wavefront application (<cxx-ref to="parallel.alg.general.wavefront"></cxx-ref>) for the last argument to <code>for_loop</code><ins>, for_loop_n,</ins> <del>or </del><code>for_loop_strided</code><ins>, or <code>for_loop_strided_n</code>.</p>
55+
<p>The invocations of element access functions in parallel algorithms invoked with an execution policy of type <code>vector_policy</code> are permitted to execute in unordered fashion in the calling thread, unsequenced with respect to one another within the calling thread, subject to the sequencing constraints of wavefront application (<cxx-ref to="parallel.alg.general.wavefront"></cxx-ref>) for the last argument to <code>for_loop</code>, <code>for_loop_n</code>, <code>for_loop_strided</code>, or <code>for_loop_strided_n</code>.</p>
5656

57-
<p>During the execution of a parallel algorithm with the <code>experimental::execution::vector_policy</code> policy, if the invocation of an element access function exits via an uncaught exception, <code>terminate()</code> <ins>will</ins><del>shall</del> be called.</p>
57+
<p>During the execution of a parallel algorithm with the <code>experimental::execution::vector_policy</code> policy, if the invocation of an element access function exits via an uncaught exception, <code>terminate()</code> will be called.</p>
5858

5959
</cxx-section>
6060

6161
<cxx-section id="parallel.execpol.objects">
6262
<h1>Execution policy objects</h1>
6363

6464
<pre>
65-
<ins>inline </ins>constexpr execution::unsequenced_policy unseq{};
66-
<ins>inline </ins>constexpr execution::vector_policy vec{};
65+
inline constexpr execution::unsequenced_policy unseq{};
66+
inline constexpr execution::vector_policy vec{};
6767
</pre>
6868

6969
<p>The header <code>&lt;experimental/execution&gt;</code> declares a global object associated with each type of execution policy defined by this Technical Specification.</p>

front_matter.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<cxx-titlepage stage="draft">
2-
<cxx-docnum>N4725</cxx-docnum>
2+
<cxx-docnum>NXXXX</cxx-docnum>
33
<cxx-project-number>19570</cxx-project-number>
4-
<time pubdate="">2018-02-12</time>
5-
<cxx-revises><a href="http://wg21.link/N4706">N4706</a></cxx-revises>
4+
<time pubdate="">2018-04-02</time>
5+
<cxx-revises><a href="http://wg21.link/N4725">N4725</a></cxx-revises>
66
<cxx-editor>
77
Jared Hoberock<br/>
88
NVIDIA Corporation<br/>

normative_references.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ <h1>Normative references</h1>
1919
Algorithms Library</dfn>.</p>
2020

2121
<p>Unless otherwise specified, the whole of the C++ Standard's Library
22-
introduction (C++14 §20) is included into this
22+
introduction (<cxx-ref in="cxx" to="library"></cxx-ref>) is included into this
2323
Technical Specification by reference.</p>
2424
</cxx-clause>
2525

0 commit comments

Comments
 (0)