-
Notifications
You must be signed in to change notification settings - Fork 2
/
cplexts.tex
224 lines (186 loc) · 5.61 KB
/
cplexts.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
% Use of LuaTeX seems to be recommended.
% This stuff is all about "standard" LaTex capabilities used in the document.
\documentclass[
techspec, % for a Technical Specification
final, % needed for PDF bookmarks
notcopyright, % no copyright statements (yet)
letterpaper % for now
]{isov2}
\let\ifpdf\relaxed % let hyperref implement \ifpdf
\usepackage[
pdftitle={Extensions for parallel programming},
pdfauthor={Clark Nelson},
pdfsubject={WORKING DRAFT Technical Specification},
pdfkeywords={},
pdfstartview=FitH,
colorlinks=true, % not boxed
linkcolor=blue, % usual default for browsers
urlcolor=blue
]{hyperref} % for PDF hyperlinks and bookmarks
\usepackage{chngcntr} % for paragraph numbering
\usepackage{color} % for editorial marking
\usepackage[T1]{fontenc} % to use 256-character fonts
\usepackage{fontspec} % to disable ligatures
\usepackage{ifthen} % for conditional code/text
\usepackage{listings} % for code listings
\usepackage{makeidx} % for indexing
\usepackage[normalem]{ulem} % for underlining and strikeout
\usepackage{underscore} % to simplify use of underscores
\usepackage{verbatim} % for code font
\usepackage{xspace} % to simplify macros that expand to text
\makeindex
\setcounter{secnumdepth}{6}
\setcounter{tocdepth}{2} % practical TOC size
\setcounter{tocdepth}{6} % uncomment to check outline structure
% These macros are from the WG21 standard source.
\input{macros}
\renewcommand{\indextext}[1]{\index{#1}}
\renewcommand{\indexgram}[1]{\index{#1}}
% This is for macros invented for/by CPLEX.
\newboolean{hidecpp}
\setboolean{hidecpp}{false}
\input{cplexmac}
% These parameters, and the documentclass options,
% are about document identification and overall formatting.
\docdate{2017}{09}{21}
\newcommand{\wgdocno}{N2170}
\newcommand{\epptsno}{21938-1}
\standard{\epptsno}
\yearofedition{\placeholder{2019}}
\languageofedition{(E)}
\renewcommand{\extrahead}{\Year-\Mo-\Dy{} \wgdocno}
\begin{document}
\begin{cover}
\begin{tabular}{l l}
\textbf{Revision:} & \extrahead \\
\textbf{Reply to:} & Clark Nelson
\end{tabular}
{\huge
\bfseries
Programming language C --- \\
Extensions for parallel programming --- \\
Part 1: Thread-based parallelism
}
{\large
The only change of technical content
from N2017 to this document
is the addition of a new guarantee (with associated note)
to the task execution clause,
to address concerns from the OpenMP community
presented at the Toronto meeting.
There are also a few minor editorial changes:
\begin{itemize}
\item
The actual ISO document number for the Technical Specification
has been applied.
\item
In the Foreword,
the former description of WG14 as a Technical Committee
has been corrected.
\item
A few footnotes describing departures from existing practice (DFEP)
have been added.
\end{itemize}
}
\clearpage
\end{cover}
% The table of contents appears here.
\begin{foreword}
\input{tspasfwdbp}
ISO/TS
\epptsno{}
was prepared by Working Group ISO/IEC JTC1/SC22/WG14.
\footnote{FYI:
This is the only paragraph in the Foreword that has anything in it
that's not just boilerplate.
}
\fwdnopatents
\end{foreword}
\begin{introduction}
\intropatents
\end{introduction}
\title{Programming languages}{C}{Extensions for parallel programming}
\scopeclause
\begin{inscope}{technical specification}
\item
Extensions to the C language to simplify writing a parallel program.
\end{inscope}
\begin{outofscope}{technical specification}
\item
Support for writing a concurrent program.
\end{outofscope}
\normrefsclause
\normrefbp{technical specification}
\begin{nreferences}
\isref{ISO/IEC 9899:2011(E)}{Programming languages --- C}
\isref{ISO/IEC 14882:2014(E)}{Programming languages --- C++}
\end{nreferences}
\include{definitions}
\clause{Document conventions}
\pnum
This source and issue list for this document are hosted at
\isourl{https://github.com/wg14-cplex/epp}.
\pnum
\begin{cpp}
Text that is specific to C++
is enclosed in square brackets
and presented in oblique sans-serif type.
\end{cpp}
\pnum
Definitions of terms and grammar non-terminals defined in the C
\begin{cpp}
or C++
\end{cpp}
standard are not duplicated in this document.
Terms and grammar non-terminals defined in this document
are referenced in the index.
The ``cplex_'' prefix of library identifiers
is omitted from the index entry.
\pnum
According to the ISO editing directives,
the use of footnotes
``shall be kept to a minimum.''
Almost all of the footnotes in this document
are not intended to survive to final publication.
Most footnotes are classified by an abbreviation:
\begin{description}
\item[FYI]
A point of information.
\item[DFEP]
Departure from existing practice.
\end{description}
\begin{comment}
\pnum
Annex A contains information
concerning the editing of the LaTeX source of this document.
It will not survive to final publication.
\end{comment}
\clause{Predefined macro names}
\pnum
The following macro name is defined by the implementation:
\begin{description}
\item[\tcode{__STDC_PARALLEL_EXT__}]
The integer constant \tcode{\Year\Mo}.
\end{description}
\include{tasks}
\include{reduction}
\include{capture}
\include{countable}
\include{parallelloop}
\include{spawning}
\include{loopparameter}
%\%include{samples}
\bibannex
\begin{references}
\reference{}{Intel\copyright{} Cilk\texttrademark{} Plus
Language Extension Specification,}
{Intel Corporation}:
\isourl{https://www.cilkplus.org/sites/default/files/open_specifications/Intel_Cilk_plus_lang_spec_1.2.htm}
\reference{}{OpenMP Application Program Interface,}
{OpenMP Architecture Review Board}:
\isourl{http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf}
\end{references}
% we definitely want a two-column index
% but I can't figure out how to get one
\printindex
\end{document}